java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethod(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite
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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 5 more
在eclipse运行界面会出来的,用exe4j生成exe报这个错误。
环境重新配置过的。 展开
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite
这一句原因已经说的很明白了。请加载相应的lib库文件,是swt界面开发用的。
将你的类文件导出为可执行的jar文件,具体为在你的工程上右击,选择“export”→“java”→Runnable Jar file,这样就可以把你的所有与界面相关的所有类都包含进来了,不过大小有点大。
----------下面是补充内容,估计用不到。
当然也通过exe4j打包进去了,具体打包方式,请参照exe4j说明加入。
而且我也不推荐将jar文件全部打包到exe文件里面去,直接用链接的方式引用就行了(当然也可以吧所有的jar包放进去,既然你选择了把jar包嵌入到exe文件,那就按照你的要求来吧)。
首先,将你程序所用到jar包放到一起(保证程序运行所有需要除jre 下lib库以外的所有包,包括把你的程序导出,打包成的jar文件,还有swt lib库文件,放到一个文件目录下,当然你也可以将所有的类导出为可执行的jar文件,这样所有的jar包都放到一个jar文件里面去了,Eclipse导出可执行jar包就不需要我说了吧?)
然后打开exe4j打包工具:
选择:(这是选择将所有的jar文件打包到exe文件)
然后选择(GUI程序):
然后(这一步才是关键就是把你所有的jar文件全部添加进去)
抱歉,百度不允许我再上传图片了,你点击昨天的“Java invocation”列表,进入classpath配置选项。这里可以添加你所要加入的jar包(swt jar包你需要自己把它导出或者复制出来),点击“+”按钮,选择“Archive”(存档),然后一个个把你用到的jar文件添加进来(不允许批量添加)。然后选择一个入口类(你的swt界面执行类)。这时候打包完成后就行了