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.
Вот вещи, которые я пробовал до сих пор, которые не работают:
добавив флаг в командной строке, как "Java-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. это решает первую ошибку, но появляется другая ошибка:
Исключение в потоке "основной" .main (неизвестный источник)
РЕДАКТИРОВАТЬ:
Если я закомментирую код, который создает экземпляры отсутствующих классов, но оставляю импорт, код выполняется нормально.
РЕДАКТИРОВАТЬ:
Я переместил свои Java-классы на сервер и сослался на MainClass с сервером в атрибуте manifest, но это ничего не исправило.