2011-11-06 101 views
2

我在使用SWT組件部署應用程序時遇到問題。「Runnable Jar」SWT元素不工作

我讀了SO link,並將SWT與swing結合到我的代碼中。
當我在eclipse 3.7.1靛藍(Ctrl鍵 + F11Alt鍵 + 移位XĴ)運行它。它在日蝕內完美運行。

但是,當我將該文件導出爲「可運行JAR」時:
應用程序本身運行良好,但SWT文件選擇器卻沒有。

當我的文件導出爲JAR,即加入根據清單:wiki eclipse link + SO link + SO link + SO link和我得到在排除故障部分中列出的錯誤(蝕維基)。 我檢查了所有列在那裏的解決方案,但它們不適合我。

問題:

  1. 爲什麼SWT文件在Eclipse中,而不是在一個 「可運行 罐子」 挑肥揀瘦的工作?
  2. 爲什麼eclipse中的「runnable jar」導出嚮導,而不是 自動合併SWT?
  3. 爲什麼出口的罐子不清單,當swt.jar名稱正確,並在工作運行時文件夾,主類是正確的,但它仍然給出了錯誤?:
    Could not find the main class. Program will exit.

我我假設最簡單的解決方案是使用Swing文件選擇器。但我想知道如何讓SWT應用程序在eclipse外運行。

問候

UPDATE:結果證明,所有的.jar文件(庫構建路徑)需要被添加到清單。我剛剛添加swt.jar這就是爲什麼我得到Could not find main class...錯誤。將其他.jar添加到清單解決了上面的Q3。

從命令行運行時:當導出jar +可運行jar包時,SWT組件工作正常。

但是,當試圖通過雙擊運行可運行JAR時,SWT組件不起作用。 Q1和Q2仍未解決(雙擊時SWT文件選擇器不起作用,但在cmd java -jar中工作...)。

+0

所需的庫在哪裏?什麼是你的java.library.path? – trashgod

+0

在我的構建路徑(庫),我有一個swt.jar(我添加了添加外部罐)。我也有一個JRE系統庫[jre6]。 – Mikail

+0

謝謝,進一步檢查構建路徑庫有助於解決Q3。類路徑已修復(https://blogs.oracle.com/olaf/entry/jdev_including_a_classpath_in)問題已更新。 – Mikail

回答

1

解決 Q1,Q2通過java can run jar from cmd but not by double clicking

有趣的是,更新到jre 7u1也解決了我的問題。 從http://www.oracle.com/technetwork/java/javase/downloads/jre-7u1-download-513652.html下載。

Q3清單:

清單-版本:1.0

類路徑:SWT.JAR example.jar(空格之後添加其他的.jar文件,我已經忘記了其他jar )

主類:mypackage.MyClassWithMainMethod

(空白線在文件的結尾)

感謝您的幫助

進一步明晰:作爲一個「罐子」出口時,您可以手動創建一個清單。當作爲「可運行jar」導出時,不需要手動執行。

+0

+1後續。此[實用程序](https://sites.google.com/site/drjohnbmatthews/manifesto)可方便檢查構建的清單。 – trashgod