java.lang.ClassNotFoundException beim Ausführen von java -jar

Ich benutze Ameise, um meine zu bauenbuild.xml Datei kompiliert es ok, bekommt dann aber eine Laufzeitjava.lang.NoClassDefFoundError beim Laufenlassen des resultierenden Glases über "java -jar my_jar.jar". Es scheint, als würde dies viel auftauchen, aber keine der Lösungen der verwandten Fragen hat für mich funktioniert.

Mein Klassenpfad fürjavac enthält nur "/usr/local/lib/libthrift.jar"und die Haupt.java Datei importiert eine Reihe von Sparsamkeitspaketen wieorg.apache.thrift.transport.TTransportException.

Wenn ich versuche, das Programm auszuführen, über:

java -jar MyClass.jar

Ich bekomme den Fehler:

Exception in thread "main" **java.lang.NoClassDefFoundError**: org/apache/thrift/transport/TTransportException
Caused by: java.lang.ClassNotFoundException: org.apache.thrift.transport.TTransportException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: **MyClass**. Program will exit.

Hier sind die Dinge, die ich bisher ausprobiert habe und die nicht funktionieren:

Hinzufügen eines Flags in der Befehlszeile wie "Java-cp /usr/local/lib/libthrift.jar -jar my_jar.jar", das Ergebnis ist derselbe Fehler wie oben

Hinzufügen<attribute name="Class-Path" value="./:/usr/local/lib/libthrift.jar"/> in meinem Glasmanifest> Tag, das Ergebnis ist der gleiche Fehler wie oben

Hinzufügen-Xbootclasspath/a:/usr/local/lib/libthrift.jar:./ auf die Java-Befehlszeile. Es behebt den ersten Fehler, aber es tritt ein anderer Fehler auf:

Ausnahme im Thread "main" java.lang.NoClassDefFoundError: org / apache / log4j / Logger bei org.apache.thrift.transport.TServerSocket. <Clinit> (TServerSocket.java:36) bei MyClass.start (Unknown Source) bei MyClass .main (Unbekannte Quelle)

BEARBEITEN:

Wenn ich den Code auskommentiere, der die fehlenden Klassen instanziiert, aber die Importe belässt, wird der Code einwandfrei ausgeführt.

BEARBEITEN:

Ich habe meine Java-Klassen auf einen Server verschoben und die MainClass mit dem Server im Manifest-Attribut referenziert, aber das hat nichts behoben.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage