Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我会得到;发生了Java异常";在我将应用程序导出到Jar之后?_Java_Eclipse_Exception_Jar_Export - Fatal编程技术网

为什么我会得到;发生了Java异常";在我将应用程序导出到Jar之后?

为什么我会得到;发生了Java异常";在我将应用程序导出到Jar之后?,java,eclipse,exception,jar,export,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/sw

好的,我用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。。。当你想让它在桌面上工作时,它永远不会工作。。。对不起,我真的很紧张,我反应过度了


你知道这是什么原因吗?我也不在其他电脑上工作。现在它正在使用Java1.7。而且应用程序在Eclipse上运行得非常完美。

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


您可以在清单文件中设置类路径,如中所述,或者您可以包含一个脚本来启动应用程序,在运行jar时使用
-cp
命令,或者您可以使用一些东西将所有内容打包到一个monster jar中,就像创建jar时的解决方案一样。

,它只包含您编写的类,不包含任何第三方依赖项。(如SWT。)在IDE之外运行项目时,需要使用
-cp
参数创建一个启动器,在类路径上包含这些依赖项,以
java.exe
.FWIW,Eclipse应该能够在一个目录中生成某种分发包,其中包含应用程序所需的所有
.jar
。@millimoose嗯,我想这就是我需要的,我需要它将所有内容打包到一个jar中(这就是我选择导出到jar的原因?)。那么如何做到这一点呢?导出到JAR通常意味着“将我的代码导出到JAR”。(想法是你负责为你的应用程序设置所需的类路径。)第三方JAR必须重新打包,或者手动包含在类路径中。digitaljoel的答案指向了一些可以进行这种重新打包的工具。将项目导出为可运行的jar以获得快速解决方案。这应该包括依赖的jar。长期-您需要确定是什么原因导致org/eclipse/swt/widgets/Composite包含在您的程序中并将其删除。monster jar的答案还忽略了一些更为流行的解决方案,如或Maven