簡體   English   中英

Jar中的ClassNotFoundException

[英]ClassNotFoundException in jar

我的Java應用程序有問題。 有時,當我在Ubuntu服務器上運行應用程序時,會發生ClassNotFoundException。 我之所以說是因為錯誤是隨機出現的:有時經過很長時間(並重新啟動應用程序以修復該錯誤),有時是在首次使用該相關類時(並重新構建應用程序以修復該錯誤)。

請注意,導致錯誤的並不總是同一個類。 另請注意,我不使用Class.forName()或Classloader.loadClass()或ClassLoader.findSystemClass()。

我通過以下命令運行應用程序:java -jar server.jar

所有類都在Jar文件中(我將其解壓縮以進行檢查),並且清單正確。

這是我得到的錯誤:

java.lang.ClassNotFoundException: com.edioromeh.server.server2server.S2SDroppedItem at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:266) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:622) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) at com.edioromeh.ub.server.Messenger.run(Messenger.java:44) at java.lang.Thread.run(Thread.java:722)

我的Java版本是:Java版本“ 1.7.0_15” OpenJDK運行時環境(IcedTea7 2.3.7)(7u15-2.3.7-0ubuntu1〜12.04.1)OpenJDK 64位服務器VM(內部版本23.7-b01,混合模式)

謝謝你的幫助!

請注意,當通過ObjectInputStream從字節數組反序列化對象時,您的應用程序必須依賴於該對象的類,因為'ObjectInputStream.resolveClass'方法將調用java.lang.Class.forName0()以使流成為對象。

在這里,您的應用程序不依賴於名為“ com.edioromeh.server.server2server.S2SDroppedItem”的類

您可以找到包含此類的.jar文件,並將其放入應用程序的類路徑中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM