好吧,我用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上运行完美。
答案 0 :(得分:3)
您需要获取依赖项。看起来你依赖于swt,它不是核心java语言的一部分。您需要获得所依赖的所有第三方罐子并将它们包含在您的类路径中。它在eclipse上完美运行,因为eclipse负责为你设置类路径。
您可以按照documentation中的说明在清单文件中设置类路径,也可以在运行jar时包含一个脚本来启动将使用-cp
命令的应用程序,或者您可以使用将所有东西打包成一个怪物罐的东西,就像this question的解决方案一样。