我的小程序在Eclipse中运行良好但在导出并作为jar文件运行后不会运行。这是运行时抛出的异常。 (我可能只需要一个关于导出到jar文件的好文章的链接)。谢谢你的帮助。
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widge
ts/Layout
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Layout
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)
Could not find the main class: EnterNames.EnterNames. Program will exit.
*******
答案 0 :(得分:2)
(我可能只需要一篇关于导出到jar文件的好文章的链接)
这不是那么简单。如果您的应用程序依赖于SWT类,那么您需要将应用程序配置为在Eclipse之外使用SWT。这不仅仅是添加正确的JAR文件的问题。 SWT使用本机库与主机操作系统的窗口系统进行通信。
此Eclipse FAQ描述了如何为基于SWT的独立应用程序创建JAR。
答案 1 :(得分:0)
您的程序正在使用属于Eclipse产品的类。您需要更改代码以不使用这些类,或者识别这些类所在的jar,并确保它们是程序的类路径的一部分。然后,正如@irrelephant所说,您可以设置清单,也可以在命令行类路径参数中设置它们。
答案 2 :(得分:0)
您需要在jar文件中使用SWT类。在您的jar文件中加入swt.jar
,然后按this entry on eclipse faq。