2011-03-28 29 views
0

我有一個應用程序,使用約20個外部jar文件。爲了將所有內容打包成一個文件進行分發,我將所有外部文件解壓到一個特定的目錄中,然後將它們重新整合到一個jar文件中。最終的結果是大小約2MB。我想使用jarjarlinks來減少分發jar的大小,但我找不到任何有關如何執行我想要的操作的示例。使用jarjarlinks只包括在罐子裏使用的類

從本質上講,我只想從外部的瓶子中取出我正在使用的類並丟棄所有其餘的類。 jarjarlinks可以做到嗎?如果不是,有沒有人會推薦一些其他工具?

我的消息來源至今:

http://code.google.com/p/jarjar/wiki/GettingStarted

http://jonasboner.com/2005/12/09/stay-out-of-jar-hell-with-jar-jar-links.html

http://sixlegs.com/blog/java/dependency-killer.html

+0

我做了(潛在的)一些進展。查看命令行wiki,有一條叫做keep的規則,它接受一個模式並將任何適合該模式的類視爲根。任何其他沒有通過依賴關係連接到這些根的類都會被丟棄。這似乎正是我想要的,但是,每當我運行它時,生成的jar都會損壞。我提取它,並且清單文件丟失。我看不到任何直接的方法來防止這種情況發生 - 似乎沒有任何明顯的參數或任何過程指令。有什麼想法嗎? – JDS 2011-03-28 16:25:39

回答

0

你也可以使用一個名爲autojar工具。

關於清單文件,你可以用jar命令的-e選項添加一個一旦罐子包裝:

jar -uvfe myjar.jar full.name.of.class.with.main.method 
+0

這樣做。總而言之,我削減了約1MB的大小。謝謝你的提示。 – JDS 2011-03-28 18:30:56