2010-11-10 79 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

相關問題