java的打包成jar方法

  1. 製作 Executable JAR

    1. 製作可執行JAR的注意事項

    2. 初階小試

    3. Eclipse 製成 JAR

    4. 打包成exe檔工具

    5. 詳細的圖文教學

製作 Executable JAR

    1. 產生出class檔

    2. 編寫MANIFEST.MF檔,格式如

      1. Manifest-Version: 1.0

      2. Created-By: ant 1.4

      3. Main-Class: com.example.myAppMain

      4. Class-Path: mail.jar activation.jar

    3. jar -cvfm "ANY_NAME".jar MANIFEST.MF ["檔1".."檔n" | "路徑" ]

    4. java -jar "ANY_NAME".jar

製作可執行JAR的注意事項

    • MANIFEST.MF 內的"Main-Class: "是唯一必要的欄位,其他可省略

        • Main-Class: Main檔路徑 :後的空格要注意

        • com.example.myAppMain 代表 執行檔myAppMain.class放在 "/com/example/"資料夾內

    • jar -cvfmfm 順序不可搞混。

    • java -jar 的 - 不可省略,否則報錯

初階小試

0. 編程

指令:

vim test.java

內容:

public class test{

public static void main(String[] args){

System.out.println("hello word");

}

}

1. 編譯

指令:

javac test.java

2. 執行文件

指令:

vim MANIFEST.MF

內容:

Main-Class: test

3. 打包

指令:

jar -cvfm test.jar MANIFEST.MF ./

執行畫面如下:

新增 manifest

新增︰MANIFEST.MF (讀=17)(寫=19)(壓縮 -11%)

新增︰test.class (讀=514)(寫=330)(壓縮 35%)

4. 執行

指令:

java -jar test.jar

執行畫面如下:

hello word

Eclipse 製成 JAR

0 run

程式需在Eclipse 上 run過,假設run完被紀錄的名稱為test

1 製作JAR 檔

在Package Explorer 找到程式碼的專案資料夾,右鍵點選export =>

打開Java類 -> Runnaable JAR file =>

Launch configuration -> "test" ;

Export destination->"隨便一個path" ->

Finish

2 執行

假設我們將匯出的jar放在桌面上,名稱為test.jar 則要執行它則是:

cd ~/Desktop

java -jar test.jar

打包成exe檔工具

reference from 將Java程序作成exe文件的N種方法

詳細的圖文教學

Reference by Java Gossip: 製作 Executable JAR

撰寫Java程式到這邊,相信您一定會有所疑問的是,編出來的.class檔案越來越多,難道要將這一堆.class檔案直接給想要執行程式的人嗎?在Windows下的話,有沒有辦法按一下檔案,就可以執行程式呢?

當然,實際上要交付程式時,並不是給一堆.class檔案,而是會將編譯好的.class檔包裝為一個Java Archive File,也就是副檔名為.jar的檔案,在JDK的bin目錄下,附帶有一個jar工具程式,您可以直接執行jar程式,看看它的提示訊息:

直接執行jar工具程式,提示訊息中已清楚的說明如何使用jar程式,在這邊使用 文字編輯器製作 完成的文字編輯器為例,來示範如何將程式包裝為.jar的檔案,首先請建立一個jar目錄,並在其下建立bin與classes目錄,將您完成的文字編輯器程式放入classes中(包括套件的資料夾結構),待會將會產生的.jar則將放入bin中。

接著開啟文字模式,切換工作目錄至jar目錄下,然後鍵入以下的指令,表示將建立一個JNotePad.jar放到bin目錄中,來源是classes中的檔案,被放入的檔案將以/作為.jar檔案中的根目錄:

接著您的bin目錄中就會產生一個JNotePad.jar,要如何使用這個.jar檔案呢?.jar檔案中包括.class,基本上可以將.jar看作是一個特別的目錄,所以要使用.jar檔案中的.class檔案時,基本上也是指定Classpath,例如:

java -cp ./bin/JNotePad.jar onlyfun.caterpillar.JNotePad

接著您的文字編輯器就會啟動了,現在您不用將一堆.class檔案交付出去,只要交付這個JNotePad.jar就可以了。

然而,真的要指定Classpath這麼麻煩嗎?其實還有更方便的做法,製作一個Executable Jar檔案,指定讀取.jar檔案時要執行的Main-Class就可以了,這需要準備一個manifest.txt,當中寫下:

注意寫完Main-Class之後,要按下Enter鍵新增一行,在Windows下這個動作是必要的,否則會發生無法讀取Main-Class屬性的錯誤。假設manifest.txt放在jar目錄下,接著如下執行指令:

在.jar檔案製作出來後,您可以在執行java時指定-jar引數,以及您的.jar檔案,java程式會自動尋找Main-Class並執行,例如下達以下的指令:

java -jar bin/JNotePad.jar

接著您的文字編輯器就會啟動了,如果您的作業系統是Windows,由於安裝完JRE之後,會將.jar預設由javaw程式開啟,所以您可以直接在JNotePad.jar檔案上,使用滑鼠左鍵按兩下直接開啟程式來執行。