无法像命令那样从命令执行Java GUI

时间:2016-04-12 14:08:19

标签: java eclipse swing classpath graphstream

我有一个使用Swing构建的GUI应用程序和一个名为GraphStream的第三方图形库(要包含2个JAR)。这可能是类路径问题,并且与库本身无关。

当我从Eclipse运行时,会出现GUI,并且没有错误/警告。

但是,当我尝试从命令行运行时,我收到NoClassDefFoundError,或者应用程序运行并且"挂起"无限期地加载库。这看起来完全是零星的。有时会打印错误,有时JVM会挂起。这就是我运行应用程序的方式:

java -verbose -classpath '../lib;.' -cp . bt_sim <args>

两个JAR文件位于&#34; ../ lib&#34;目录(那些是该目录中唯一的两个文件)。而且,我写的课程都在&#34;。&#34; - 实际引发错误时,这是​​输出:

... 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中,从命令行运行时,只包含两个JAR文件(第三方图形依赖项)。 JAR文件位于&#34; lib&#34;我上面命令中的目录。关于调查什么的任何想法都会非常有用!

我的解决方案 我没有意识到我必须在类路径上明确地包含每个第三方JAR 。一旦我这样做,应用程序按预期执行: - /

1 个答案:

答案 0 :(得分:1)

请注意,ReactDomReactDOM.render(<Main />, document.getElementById('root')); 是别名:

-classpath

我怀疑当一起使用时,一个会覆盖另一个。相反,请使用包含所需平台的form目录和路径分隔符的https://api.jquery.com/delay/