2013-02-04 155 views
9

在處理中,我想導入一個我用Java編寫的庫,它封裝了一個外部庫(.jar文件)。如何使用外部Jar依賴項導出Eclipse項目?

處理似乎導入我自己的庫,但是當我調用構造函數(它引用外部庫中的某些類)時,我在Processing GUI控制檯中得到java.lang.NoClassDefFoundError

如果不是在我的Eclipse構建路徑中包含External .jar,那麼我使用庫的實際源代碼並導出所有這些,Processing不會抱怨。

我該如何打包這個項目,以便我不必在Eclipse項目中包含所有庫的源代碼(而只是包含.jar文件)?


更新:根據N.L.telaviv的建議下,我選擇出口作爲一個Runnable JAR。對我來說有效的是選擇「將所需的庫複製到生成的JAR旁邊的子文件夾中」選項。在這裏,另一個文件夾被創建在輸出包含被引用的.jar庫的.jar旁邊。

Update2:工作的另一個選項是「將所需的庫提取到生成的JAR中」。這樣做可以讓JAR在內部訪問引用。這似乎與N.L.telaviv的建議一致,但似乎並非如此。如果您不想有任何額外的文件,請選擇此選項。如果您瀏覽.JAR文件,您會注意到外部庫位於單獨的包文件夾中。

+0

嗨庫,我選用了所有這些選項,但沒有一個是爲我工作。你能告訴我會有什麼問題嗎?謝謝! –

回答

6

使用Runnable JAR文件導出選項。

點擊你的項目 - 出口 - Java的可運行jar文件 - 選擇包裝選項需要在罐子

+0

剛剛嘗試過,沒有運氣。唯一的區別是,除了導入MyProjectPackage。*之外,Processing還會導入org.eclipse.jdt.internal.jarinjarloader。* – funseiki

+0

檢查MANIFEST中的類路徑定義是否包含每個JAR – Nimrod007

+0

是否引用.classpath文件?如果是這種情況,那麼它確實有.jar。我還發現,如果選擇「將所需的庫複製到生成的JAR旁邊的子文件夾中」,它似乎可以正常工作,而不是選擇將其打包到生成的jar中。 – funseiki

相關問題