gpt4 book ai didi

java - 共享 jar 和 noclassdeffound java

转载 作者:行者123 更新时间:2023-12-01 11:36:37 25 4
gpt4 key购买 nike

我正在运行一个 debian java 服务器,它需要发送和接收 EventObject 和 PostObject 类型的对象(例如可序列化)。它们已放置在 .jar 文件 SharedModels.jar 中,并在客户端和服务器中使用。在Windows安装(Eclipse)上,使用

导入模型.EventObject; 导入 Models.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 的名称是否需要任何命名才能找到其中包含的包?我需要做什么来解决这个问题?

最佳答案

如果您的 Models/PostObject 是某个 jar 中的类,请确保该类包含在导出的 jar/war 中(只需使用 7zip 等工具打开它并手动确认所需的类存在)。

How to create a jar with external libraries included in Eclipse?

关于java - 共享 jar 和 noclassdeffound java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29913681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com