Java应用程序在IDE之外无法正常运行

时间:2012-10-23 13:03:54

标签: java intellij-idea shared-libraries

当我使用IntelliJ Idea运行它时 - 它完全正确。当我从输出运行app.jar文件时 - 一切都运行良好,但是一个功能,supportLib.jar支持。使用时我得到java.lang.NoClassDefFoundError: sun/plugin/dom/exception/InvalidAccessException。 输出的结构是:

| D:\myprogram\

  |
  ---> app.jar 
  |
  ---> lib\  
        |
        ---> supportLib.jar
        ---> anotherSupportLib.jar

ClassPath是:lib/supportLib.jar lib/anotherSupportLib.jar

3 个答案:

答案 0 :(得分:2)

sun.plugin.dom.exception.InvalidAccessException位于$JRE_HOME/lib/plugin.jar,因此您需要将$JRE_HOME/lib/plugin.jar添加到类路径中。我想IntelliJ会自动添加它,但它不会被Java运行时自动加载(与rt.jar不同)。


根据评论的反馈,应该像这样启动应用程序:

java -classpath "c:/Program Files/Java/jre7/lib/plugin.jar;app.jar;lib/supportLib1.jar;lib/supportLib2.jar;lib/supportLib3.jar" namespace.forms.MainForm

答案 1 :(得分:2)

IDEA通常会添加绝对路径:

 -classpath D:\myprogram\lib\supportLib.jar;D:\myprogram\lib\anotherSupportLib.jar

尝试使用此synthax运行jar。

答案 2 :(得分:0)

在Windows机器上,这需要使用分号lib/supportLib.jar;lib/anotherSupportLib.jar