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、混合モード)
ご協力いただきありがとうございます!