У меня есть приложение с графическим интерфейсом, построенное с Swing и сторонней графической библиотекой GraphStream (есть 2 JAR для включения). Это, вероятно, проблема с классом и независимо от самой библиотеки.Невозможно выполнить Java GUI из командной строки, как sporatically
Когда я забегаю из Eclipse, появляется GUI и ошибок и предупреждений нет.
Однако, когда я пытаюсь запустить из командной строки, я либо получаю NoClassDefFoundError, либо приложение запускается и «зависает» бесконечно во время загрузки библиотек. Это кажется совершенно спорадическим. Иногда ошибка печатается, и иногда JVM просто зависает. Это, как я бегу приложение:
java -verbose -classpath '../lib;.' -cp . bt_sim <args>
два JAR-файлы находятся в каталоге «../lib» (и только эти два файла в этом каталоге). Более того, классы, которые я написал, находятся в "." - Если ошибка действительно поднята, это выход:
... Other loading output from JVM debug ...
[Loaded java.util.IdentityHashMap$KeySet from C:\Program Files\Java\jre8\lib\rt.jar]
java.lang.NoClassDefFoundError: org/graphstream/graph/Graph
at bt_sim.main(bt_sim.java:70)
Caused by: java.lang.ClassNotFoundException: org.graphstream.graph.Graph
at java.net.URLClassLoader$1.run(Unknown Source)
И когда зависание приложения:
...
[Loaded java.util.Formatter$Flags from C:\Program Files\Java\jre8\lib\rt.jar]
[Loaded java.util.Formatter$Conversion from C:\Program Files\Java\jre8\lib\rt.jar]
[Loaded sun.misc.Cleaner from C:\Program Files\Java\jre8\lib\rt.jar]
Эта же ошибка происходит даже тогда, когда я бег из среды Linux. Во всех случаях я работаю с JRE 8. В Eclipse и при запуске из командной строки есть только TWO JAR-файлы (зависимые от третьего лица графики). Файлы JAR находятся в каталоге «lib» в моей команде выше. Любые идеи о том, что исследовать, были бы очень полезны!
МОЕ РЕШЕНИЕ Я не понимаю, что я должен был включать каждый сторонний файл JAR на пути к классам явно. После того, как я сделал это, приложение выполняется как ожидалось: -/
Престижность использования '-verbose' для постановки диагноза. – trashgod