2014-09-07

jar打包小程式

程式載點:https://sourceforge.net/projects/jararchiver 

  • 使用說明

[Step 1]
首先點選「選擇檔案或資料夾按鈕」,
選擇你要打包的資料夾或是檔案。
你可以多重選擇,也可以同時選擇目錄與檔案。

Step1選擇出來的檔案結構,就是到時候匯出jar檔的結構。
例如,你選擇了A.class、B.class這兩個檔案,並匯出成output.jar,
則到時候的jar檔結構則會是:

output.jar
 |--META-INF
 |--A.class
 |--B.class

因此,若你選擇了一個資料夾,
那麼到時候jar檔裡的根目錄就會是該資料夾,
而不是資料夾裡面的內容。
若你要選擇資料夾裡面的內容,
則你必須點進該資料夾裡,並把所有內容選取進來。

要注意的一點是,要打包的所有東西必須在同一層父目錄之中。
舉例來說,你不能打包X\foo\AX\bar\B這兩個檔案(or目錄),
於此程式中你也無法這麼做。(老實說這樣做也沒啥意義)
你只能選擇foobar這兩個資料夾,
不能個別選擇你要打包這兩個資料夾下的哪個東西。

[Step 2]
從左邊(Step1)讀進來的檔案中,
選擇一個檔案當作程式的進入點。(只能選擇.class檔案)
若你點選的是資料夾,則會跳出一個視窗,
讓你選擇該資料夾下的檔案。

[Step 3]
輸入你選擇的進入點程式的package名稱,
此名稱會影響到meta file的Main-Class內容。
或是勾選「使用預設package」,
但必須確保你的進入點程式碼中開頭沒有使用package關鍵字。

若你在Step2中選擇了資料夾下的某檔案當作進入點,
則會自動幫你加上該資料夾的名稱。
在jar的觀點,該資料夾就是package,
因此你若不輸入此資料夾名稱當作進入點,
則會無法正常執行你的java程式。

[Step 4]
由Step1~Step3,會自動幫你產生meta file,
若有額外要新增的資訊,可以在這邊手動新增上去。
但必須自行檢驗格式是否正確,否則會無法正確執行程式。

[Final]
以上4個步驟都完成後,就可以開始打包成jar檔。
程式會跳出視窗,讓你選擇要存檔的地方。
若你輸入的存檔名稱副檔名不是.jar的話,
程式都會自動幫你加上去。

  • 已知bug 

1.
在Step1中,要打包的內容只有一個資料夾時,
有時候會無法順利打開資料夾選擇進入點。
(通常是更動了Step3的內容後才會有這個情形)

2.
在Step2連續點選兩個資料夾時,
會有同時focus的狀況發生,但不影響選取功能。

  • 未來發展目標

1.
bug2的問題也許可以藉由改成用thread的方式撰寫解決。

2.
目前非Windows系統下,
要有裝jdk、並且環境變數設置正確者才可以使用本程式。
之後預計把unix系統的jar程式加入本程式。

沒有留言:

張貼留言