java.lang.ClassNotFoundException при запуске java -jar
я использую муравья, чтобы построить мойbuild.xml
файл, он компилируется нормально, но затем получить время выполненияjava.lang.NoClassDefFoundError
при запуске получившейся банки через ""java -jar my_jar.jar
, Кажется, что это много поднимает, но ни один из связанных вопросов решения работали для меня.
Мой класс дляjavac
содержит только ""/usr/local/lib/libthrift.jar
и основной.java
Файл импортирует кучу благотворительных пакетов, таких как.org.apache.thrift.transport.TTransportException
Когда я пытаюсь запустить программу через:
java -jar MyClass.jar
Я получаю ошибку:
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.
Вот вещи, которые ядо сих пор пытался что нет работа:
добавив флаг в командной строке, как "Джава-cp /usr/local/lib/libthrift.jar
"-jar my_jar.jar
, результат та же ошибка, что и выше
добавление<attribute name="Class-Path" value="./:/usr/local/lib/libthrift.jar"/>
внутри моей банкиmanifest>
тег, в результате та же ошибка, что и выше
добавление-Xbootclasspath/a:/usr/local/lib/libthrift.jar:./
в командной строке Java. это решает первую ошибку, но появляется другая ошибка:
Исключение в теме "главный" java.lang.NoClassDefFoundError: org / apache / log4j / Logger на org.apache.thrift.transport.TServerSocket. <clinit>(TServerSocket.java:36) в MyClass.start (неизвестный источник) в MyClass.main (неизвестный источник)
РЕДАКТИРОВАТЬ:
Если я закомментирую код, который создает экземпляры отсутствующих классов, но оставляю импорт, код выполняется нормально.
РЕДАКТИРОВАТЬ:
Я переместил свои Java-классы на сервер и сослался на MainClass с сервером в атрибуте manifest, но это не такничего не исправить.