2011-12-12 134 views
0

可能重複:
Can you add multiple jars in a jar file and then launch that jar file如何將jar文件添加到jar文件中?

我想找到一種方法來嵌入一個jar文件轉換成一個可執行的JAR文件,以便所有程序所需的實用程序包含在罐子文件。

此URL描述了我想做的事,但說,這是唯一可能通過編寫自定義的類裝載器:

http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html

即使壽即URL是令人沮喪的,我不會放棄。

我想嵌入的特定.jar文件是groovy.jar文件。

具體來說,我想我的jar文件看起來像這樣:

jar -tf MyProg.jar 
META-INF/ 
META-INF/MANIFEST.MF 
lib/groovy-all-1.6.9.jar 
MyProg.class 

而且我想執行這樣的:

java -jar MyProg.jar 

凡MyProg.class是一個常規程序,在運行java -jar MyProg.jar的計算機上未安裝groovy

我已經成功地在MyProg.jar文件中分解了groovy.jar文件,但這很麻煩。

有沒有人有自定義類加載器,做我想要的? 有沒有人有任何其他的想法?

回答

0

由於清單文件的類路徑條目只引用了jar本身之外的jar,因此不能將不同的jar包輕鬆地打包在一起。

某些工具可能會幫助您更改jar並更改其類加載機制。看看你的問題爲什麼關閉。

1

如果我理解正確的話,我覺得你的情況比你鏈接到一個簡單的,因爲它解決了在其他罐子來電罐子的情況下,而你想引用裏面罐子您罐。

我使用Eclipse,它會自動包含資源,包括罐子。我只需右鍵單擊相關的包並設置構建路徑。其他IDE可能具有相同的功能。

如果您不使用IDE(?!),則JAR file format只不過是一個zip文件。您可以使用任何zip歸檔程序創建JAR文件,只要您確保首先使用MANIFEST文件即可。