概述服务器和客户端之间的共享Jar文件 – NoClassDefFoundError
我运行一个需要发送和接收types为EventObject和PostObject的对象的debian java服务器(例如serializable)。 这些已被放置在一个.jar文件SharedModels.jar中,并在客户端和服务器上使用。
当试图在debian上编译时,我得到输出
ServerThread.java:10: error: package Models does not exist import Models.EventObject; ^ ServerThread.java:11: error: package Models does not exist import Models.PostObject; ^ Database.java:100: error: cannot find symbol ArrayList<PostObject> posts = new ArrayList<>(); ^
在windows上安装(Eclipse),使用
import Models.EventObject; import Models.PostObject;
工作正常(包括通过Eclipse的外部Jar)。
python模块安装错误:命令\’gcc\’失败,退出状态为1
如何检查,如果我达到了linux的X限制?
如何使Cmake包含gl / GL.h?
debian打包:dh build和dh二进制文件有什么区别?
Java内存错误:无法创build新的本地线程
我怎么才能让java明白,我想在Debian上使用这些类呢?
我已经将jar的位置添加到/ etc / environment中的类path中。
jar子的构造方式可能有问题吗? 例如它是由包含两个类的包组成的?
提前感谢和感谢
编辑:编译好,但是当方法被调用时,服务器不再承认类。 这是输出:
Exception in thread \”Thread-0\” java.lang.NoClassDefFoundError: Models/PostObject at server.Database.getposts(Database.java:101) at server.ServerThread.run(ServerThread.java:47) Caused by: java.lang.classNotFoundException: Models.PostObject at java.net.urlclassloader$1.run(urlclassloader.java:372) at java.net.urlclassloader$1.run(urlclassloader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.urlclassloader.findClass(urlclassloader.java:360) at java.lang.classLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.classLoader.loadClass(ClassLoader.java:357) … 2 more
我明白这是因为JVM在编译时识别类而不是在运行时期间。或者类path有问题。 实际.jar的名称是否需要有任何命名来包含包含的包? 我需要做什么来解决这个问题?
在Subversion Commit / USVN / RaspBerry Pi上发生500内部服务器错误
Debian7上启动Apache的XAMPP失败
而不是Glances,我错误地安装了openstack-glance
如何在linux上的/etc/ld.so.conf中获取path列表
Bash脚本debian安装程序不接受预先input的用户
不,罐子是便携式的,它们之间没有区别。 如果他们在windows上工作,他们也应该在linux上工作。
你的错误信息也非常清楚地表明,问题不是坏的jar,而是它不存在于你的类路径中。 在你的类路径设置中可能有一个微不足道的问题,可能是:
/etc/environment CLAsspATH语法是否有效? 在windows上,它必须分开: ,而在linux上有一个; 。
你包括你的jar的目录到你的类路径,而不是你的jar的完整路径?
/etc/environment仅在登录shell中设置,之后是否登录/注销?
无论如何,你可以给你的javac一个-verbose标志,它会显示,它试图从哪里加载你的罐子。
总结
以上是内存溢出为你收集整理的服务器和客户端之间的共享Jar文件 – NoClassDefFoundError全部内容,希望文章能够帮你解决服务器和客户端之间的共享Jar文件 – NoClassDefFoundError所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容