2010-11-10 40 views
0

我的小程序在Eclipse中运行良好,但在导出并作为jar文件运行后,它不会运行。这是运行时抛出的异常。 (我可能只需要一个关于导出到jar文件的好文章的链接)。感谢您的帮助。我的程序在Eclipse中运行良好,但抛出异常作为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

您的程序正在使用属于Eclipse产品的类。您需要更改代码以不使用这些类,或者确定这些类所在的罐,并确保它们是程序类路径的一部分。然后,正如@irrelephant所说,你可以设置一个清单,或者你可以在命令行classpath参数中设置它们。

+0

我终于明白了。这就是我所做的。我遵循了上述建议(Eclipse常见问题解答的链接)并且我还找到了我需要在Manifest.MF文件中列出的jar文件 - 它们被列在JRE Reference Library下的包资源管理器中。将它们添加到Manifest.mf文件最终是关键。 清单-版本:1.0 主类:org.EnterNames.EnterNames 类路径:SWT.JAR 的java \ JRE6 \ resources.jar 的java \ JRE6 \ rt.jar中 的java \ JRE6 \ jsse.jar 的java \ jre6 \ jce.jar java \ jre6 \ dnsns.jar java \ jre6 \ QTJava.zip java \ jre6 \ sunjce_provider.jar 感谢您的帮助 – Yosem 2010-11-16 04:18:42

2

(我可能只是需要导出到一个jar文件的链接,一篇好文章)

它不是那么简单。如果您的应用程序依赖于SWT类,那么您需要配置您的应用程序以在Eclipse之外使用SWT。这不仅仅是添加正确的JAR文件的问题。 SWT使用本机库与主机操作系统的窗口系统进行通信。

这个Eclipse FAQ描述了如何为独立的基于SWT的应用程序创建JAR。

+0

我还在圈子里。我尝试了你的建议(你们三个人),并且仍然在同一堵墙上。我甚至没有“org.eclipse.swt.widgets.Layout”作为导入,如果我尝试在intellisence中找到它,我不会找到它。在导出结束时出现的错误是 - 导出时出现编译警告: – Yosem 2010-11-11 01:12:11

+0

另外 - Derek提到了标识Jars。我怎么知道我在那里使用了几十个日食。我没有看到我使用的产品可能在哪里上市 – Yosem 2010-11-11 01:14:34

相关问题