2012-08-03 74 views
0

我有一個桌面應用程序,其打包爲自可執行的JAR文件,但我的代碼需要訪問的jar文件很多,這是我在已經設置清單文件中的類路徑。但是,我遇到的問題是,在類路徑中使用的所有罐子我不得不讓他們在同一目錄作爲我的可執行的JAR file.What我所需要的就是以某種方式合併所有的各種罐子讓我能在我的.mf文件的類路徑中指定這個單獨的jar文件。 的文件,即.mf是 - >創建許多jar文件合併可執行的JAR文件(在類路徑中使用)

Class-Path: poi-3.7-20101029.jar poi-examples-3.7-20101029.jar poi-ooxml-3.7-20101029.jar poi-ooxml-schemas-3.7-20101029.jar poi-scratchpad-3.7-20101029.jar jfreechart-1.0.14.jar jcommon-1.0.17.jar jfreechart-1.0.14-experimental.jar jfreechart-1.0.14-swt.jar junit.jar servlet.jar swtgraphics2d.jar gnujaxp.jar iText-2.1.5.jar 
Main-Class: gui/GUILauncher 

請建議我一個解決方案,讓我可以實現我的目標......

+0

Eclipse 3.5 JDT的Runnable JAR導出嚮導。 http://stackoverflow.com/questions/81260/java-easiest-way-to-merge-a-release-into-one-jar-file – fuzzyanalysis 2012-08-03 08:47:06

+0

可能的重複[清潔的方式來結合多個罐子?最好使用Ant](http://stackoverflow.com/questions/515428/clean-way-to-combine-multiple-jars-preferably-using-ant) – 2012-08-03 08:47:24

回答

1

你可以在清單

在文件中指定的每個路徑
Class-Path: lib/poi-3.7-20101029 ... 

這裏存儲庫罐子。

雖然我喜歡他所有的類合併成一個單一的JAR的想法,你必須要小心,可能共享相同的路徑資源。我們在我們的應用程序這個問題上,我們所有的罈子裏裝有一個版本的文件,我們使用作爲一個標記,並通過Class.getResources(...)

0

你不必保持可執行的JAR目錄中的所有這些罐子讀取。相反,您可以在Manifest.mf文件中指定相關JAR的相對路徑。 例如 您已將可執行文件保存在lib文件夾下的bin文件夾和相關jar文件夾下。 應用根 + + \倉 + + GuiLauncher.jar + + \ lib中 +的junit.jar +的servlet.jar

MANIFEST.MF在類路徑將是

Class-Path: ..\lib\junit.jar ..\lib\servlet.jar