java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite

java.lang.NoClassDefFoundError:org/eclipse/swt/widgets/Compositeatjava.lang.Class.get... 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报这个错误。
环境重新配置过的。
展开
 我来答
精灵只路过
推荐于2018-03-12 · TA获得超过2144个赞
知道小有建树答主
回答量:619
采纳率:100%
帮助的人:651万
展开全部
很简单的问题,你的程序没有使用swt lib库,你在Eclipse之所以可以,是因为Eclipse加载了swt的lib库,但是你打包的时候并没有链接swt lib库文件,当然提示找不到类文件了。
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite

这一句原因已经说的很明白了。请加载相应的lib库文件,是swt界面开发用的。
更多追问追答
追问

那怎么把swt lib打进包呢?

追答

将你的类文件导出为可执行的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界面执行类)。这时候打包完成后就行了

小童鞋_成er
2013-05-25 · 知道合伙人数码行家
小童鞋_成er
知道合伙人数码行家
采纳数:4650 获赞数:22879
主要从事J2EE工作,热爱Java,用心讨论技术,共同进步。

向TA提问 私信TA
展开全部
您好,提问者:
这个错误是缺少jar包,网上搜一下org/eclipse/swt/widgets/Composite下载导入到lib下就可以
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式