2013-05-13 132 views
-2

我創建了一個使用bluecove庫的庫。它工作的很好,但是當我把庫導出到jar中,並且包含到其他項目中時,它看起來不能找到bluecove類文件。如何將jar庫添加到jar中

Exception in thread "main" 
    java.lang.NoClassDefFoundError: javax/bluetooth/LocalDevice 

我覺得有一個關於導出jar與依賴關係的問題。我如何可以將我的java庫導出爲包含bluecove的jar以及Eclipse?


請解釋爲什麼downvoted這個問題?給出一些理由,讓我改善我的問題會很好。

+3

不要這樣做。它會破壞數字簽名,很可能是第三方API的體現。簡單地確保依賴的Jar在運行時類路徑上。 – 2013-05-13 09:35:52

+0

按照Andrew的建議,或者如果您確實想要包含庫,請參閱[Eclipse Java;導出jar,包含引用庫,沒有fatjar](http://stackoverflow.com/questions/528007/eclipse-java-export-jar-include-referenced-libraries-without-fatjar)或使用[Fat Jar插件]( http://fjep.sourceforge.net/) – 2013-05-13 09:36:07

+0

謝謝,但爲什麼這是一個壞問題?對不起復制我沒有發現與谷歌。 – 2013-05-13 09:45:07

回答

2

如果你想擁有一個包含代碼和所有依賴關係的大容器,可以使用Jar Jar Links(https://code.google.com/p/jarjar/)等工具。該工具允許您在單個JAR中重新打包多個JAR。

但我只想引用安德魯·湯普森: 「不要做,那會毀了數字簽名&很可能是第三方API的清單隻需確保依賴JAR是在運行時類 - 。路徑」

0

如果你使用一個構建文件中像螞蟻可以使用jar任務給所有的罐子相關性添加到一個我們已經成功地在多個項目完成,但作爲Algiz指出,你會遇到與問題一些需要清單文件的罐子。

有辦法解決這個問題。