java.lang.ClassNotFoundException podczas uruchamiania java -jar

Używam mrówki do budowania mojegobuild.xml plik, kompiluje się dobrze, ale potem uzyskuje środowisko wykonawczejava.lang.NoClassDefFoundError podczas uruchamiania wynikowego słoika przez „java -jar my_jar.jar„. Wygląda na to, że pojawia się dużo, ale żadne z powiązanych pytań nie zadziałało dla mnie.

Moja ścieżka klasy dlajavac zawiera tylko „/usr/local/lib/libthrift.jar„i główny.java plik importuje kilka pakietów oszczędnościowych, takich jakorg.apache.thrift.transport.TTransportException.

Kiedy próbuję uruchomić program przez:

java -jar MyClass.jar

, Dostaję błąd:

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.

Oto rzeczy, które dotychczas wypróbowałem i które nie działają:

dodanie flagi w linii poleceń, np. „java-cp /usr/local/lib/libthrift.jar -jar my_jar.jar„wynikiem jest ten sam błąd, co powyżej

dodawanie<attribute name="Class-Path" value="./:/usr/local/lib/libthrift.jar"/> wewnątrz mojego słoikamanifest> tag, wynikiem jest ten sam błąd co powyżej

dodawanie-Xbootclasspath/a:/usr/local/lib/libthrift.jar:./ do wiersza poleceń java. rozwiązuje pierwszy błąd, ale pojawia się inny błąd:

Wyjątek w wątku „main” java.lang.NoClassDefFoundError: org / apache / log4j / Logger w org.apache.thrift.transport.TServerSocket. <clinit> (TServerSocket.java:36) w MyClass.start (Nieznane źródło) w MyClass .main (nieznane źródło)

EDYTOWAĆ:

Jeśli skomentuję kod, który tworzy instancję brakujących klas, ale zostawiam import, kod działa poprawnie.

EDYTOWAĆ:

Przeniosłem moje klasy java na serwer i odwołałem się do MainClass z serwerem w atrybucie manifestu, ale to niczego nie poprawiło.

questionAnswers(7)

yourAnswerToTheQuestion