在将应用程序导出到Jar后,为什么会出现“发生Java异常”?

时间:2012-10-25 22:48:40

标签: java eclipse exception jar export

好吧,我用eclipse将我的应用程序导出到JAR中,但现在每当我尝试运行它时,我得到:“发生了Java异常”。当我尝试通过命令行运行它时,它说:

C:\Users\Arturas>java -jar D:\Dropbox\EclipseWorkspace\Exports\Dantracio_skaiciu
oklis3.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widge
ts/Composite
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 6 more

C:\Users\Arturas>

对此有何解决方案?我只是讨厌java ...当你想要它时它永远不会在桌面上运行...对不起我真的很紧张,我反应过度......

任何可能导致此问题的想法?我也不在其他计算机上工作。现在它正在使用Java 1.7。该应用程序在Eclipse上运行完美。

1 个答案:

答案 0 :(得分:3)

您需要获取依赖项。看起来你依赖于swt,它不是核心java语言的一部分。您需要获得所依赖的所有第三方罐子并将它们包含在您的类路径中。它在eclipse上完美运行,因为eclipse负责为你设置类路径。

您可以按照documentation中的说明在清单文件中设置类路径,也可以在运行jar时包含一个脚本来启动将使用-cp命令的应用程序,或者您可以使用将所有东西打包成一个怪物罐的东西,就像this question的解决方案一样。