2011-11-26 39 views
2

我有一個Java項目在Eclipse中具有封裝主要方法類MainClass一個Java項目:如何使用Ant構建一個分發的JAR具有外部依賴的JAR

com.nik.mypackage. 

該項目還引用兩個外部庫,我將它複製到Eclipse的lib文件夾中,然後使用ADD JAR函數添加到構建路徑。庫爲one.jartwo.jar

此庫位於eclipse中的lib文件夾中,並添加到構建路徑中。

我想使用ant腳本創建應用程序的可執行文件JAR。這樣用戶可以訪問我的應用程序中使用命令:

c:>java -jar MyProject-20111126.jar 

我知道這直接導出一個Java應用程序運行的JAR Eclipse插件。但我想學習ant和構建過程,所以手動要創建build.xm。

回答

5

你有兩個選擇從你的build.xml。你可以打開庫jar,然後將它們的內容與爲你的應用程序編譯的代碼捆綁在一起。或者,您可以將庫罐放在文件系統上,並在MyProject-2011126.jar文件的清單文件中提供ClassPath條目。

如果您在清單中設置類路徑,請記住您提供的路徑與MyProject-2011126.jar相關。

+0

如果我想將可分發給其他機器中的其他用戶,該怎麼辦。在那種情況下,清單文件中ClassPath條目的選項將如何工作?而對於第一種情況,取消圖書館罐和萌芽的內容 - 不能自動做到這一點? – Nik

+0

你可以在ant中做unjar/rejar,但是沒有股票任務可以做。你會使用jar任務。至於離開罐子分開它可以很好地爲其他用戶工作。類路徑相對於清單所在的jar文件。您可以使用Surasuin建議的結構,並且可以使用lib/onijar和lib/two.jar的my.jar清單中的類路徑。 –

1

一個替代方案:

而是隻有一個罐子,你建立多發罐子(你的JAR +庫)+批處理文件。

所以,你創建的軟件包可以是這樣的結構:

-/package/bin/app.bat 
    /package/lib/my.jar 
    /package/lib/one.jar 
    /package/lib/two.jar 

在app.bat你就必須與您的代碼

java -jar MyProject-20111126.jar 

PS:如果你想開始學習建工具,ANT可能有點老舊。我建議http://maven.apache.org/

相關問題