【发布时间】:2015-04-28 08:01:00
【问题描述】:
我正在运行一个 debian java 服务器,它需要发送和接收 EventObject 和 PostObject 类型的对象(例如可序列化)。这些已放置在 .jar 文件 SharedModels.jar 中,并在客户端和服务器中使用。 在 windows 安装 (Eclipse) 上,使用
导入模型.EventObject; 导入模型.PostObject; 工作正常(包括通过 Eclipse 的外部 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 确实在编译时识别该类,但在运行时识别不到。或者类路径有问题。实际 .jar 的名称是否需要命名才能确定其中包含的包?我需要做什么来解决这个问题?
【问题讨论】:
标签: java jar shared-libraries server