我在Eclipse中使用SWT爲我的GUI製作了一個使用Java的小型應用程序。我通過安裝SWT設計器來設置項目,SWT Designer與SWT設計器非常相似。我通過File >> New >> Other >> Window Builder >> SWT Designer >> SWT/JFace Java Project來創建項目。這爲我設置了整個項目,所以我可以開始使用SWT。當我使用Eclipse運行它時,我的程序成功運行。在Eclipse中導出SWT項目(通過SWT設計器進行項目設置)
不過,我希望能夠在沒有Eclipse的情況下運行它。我試圖通過File >> Export >> Java >> JAR文件將它導出爲.jar。我選擇了我的項目,點擊下一步>>下一步,然後我設置我的主類並完成。沒有錯誤。
打開的.jar給我:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Layout
這是很清楚,SWT是不是它應該是,所以我打開.jar和發現只有我的文件中,META-INF等沒有任何SWT。沒有罐子,沒有org文件夾,納達。
在我的Eclipse項目中的Project Explorer下,它列出了「參考庫」,其中設置了SWT內容。當查看它的屬性時,它列出了一堆org.eclipse ...東西。我認爲這是Eclipse知道如何運行,但似乎不導出它。
所以我的問題是:我如何得到與SWT打包在一起的導出項目,以便能夠單獨運行.jar?如果你可以解釋手動方式(即編輯META-INF和拖放所需的SWT文件)並且解釋Eclipse的輸出方式(這樣我不必一直以手動的方式進行操作) ),如果在Eclipse中有辦法做到這一點。
編輯:如果你看到我的回答下面,我解釋我是如何能夠得到這個工作,但是,它轉儲的代碼〜16MB值得進入我的.jar,這對於原本< 1MB項目相當大。如果您對如何使其只添加使用的文件有任何想法,答案仍然值得讚賞。 ;)