2

好吧,我用 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 上完美运行。

4

1 回答 1

3

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

您可以按照文档中的说明在清单文件中设置类路径,或者您可以包含一个脚本来启动您的应用程序,该脚本将-cp在运行 jar 时使用该命令,或者您可以使用将所有内容打包到一个怪物 jar 中的东西,例如这个问题的解决方案。

于 2012-10-25T22:51:11.470 回答