1. 程式人生 > >java中jar包的生成與使用

java中jar包的生成與使用

什麼是jar包?
JAR檔案的全稱是Java Archive File,意思是Java檔案檔案。是一種壓縮檔案,與常見的ZIP壓縮檔案相容。兩者最大的區別是在JAR檔案中預設包含一個名為META-INF/MANIFEST.MF的清單檔案,這個檔案是生成JAR檔案時由系統自動建立的。

使用jar包的好處

  • 安全,可以對其進行數字簽名,只讓能夠識別數字簽名的使用者使用裡面的東西。
  • 加快下載速度;
  • 壓縮,使檔案變小,與ZIP壓縮機制完全相同。
  • 包封裝。能夠讓JAR包裡面的檔案依賴於統一版本的類檔案。
  • 可移植性,能夠在各種平臺上直接使用。
    把一個JAR檔案新增到系統的classpath環境變數之後,java通常會把這個JAR檔案當做一個路徑來處理。通常使用jar命令來壓縮,可以把一個或多個路徑全部壓縮成一個JAR檔案。

什麼情況下使用jar包?
當開發一個應用程式後這個應用程式包含了很多類,如果需要把這個程式提供給別人使用,通常會將這些類檔案打包成一個JAR檔案,把這個檔案提供給別人使用。只要在別人系統的CLASSPATH環境變數中新增這個檔案,則java虛擬機器就可以自動在記憶體中解壓這個jar包。

可以使用命令來建立也可以再編譯器中建立

在編譯器中建立

在這裡插入圖片描述

在這裡選擇帶有主方法的類,點選OK;如果要打包普通的類,即沒有帶主方法,在這裡不用選直接進行下一步點選OK
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

操作成功後可以在以下目錄檢視到生成的jar包
在這裡插入圖片描述

如何使用jar包

  • 將生成的jar複製到想用的地方。
    如複製到桌面上,然後開啟命令視窗執行java -jar jar包名


    在這裡插入圖片描述

  • 如果想在另一個工程中使用:
    將剛才的jar包新增進新建的目錄
    在這裡插入圖片描述
    新增進依賴
    在這裡插入圖片描述

用命令建立

jar命令詳解

  • jar cf test.jar test不顯示壓縮過程將當前路徑下的test路徑下的全部內容生成一個test.jar檔案,如果已經存在則被覆蓋。
  • jar cvf test.jar test顯示壓縮過程;
  • jar cvfM test.jar test不生成清單檔案;
  • jar cvfm test.jar manifest.mf test自定義清單檔案資訊,m指定讀取使用者清單資訊。清單檔案是普通文字檔案。
  • jar cvfm test.jar a.txt test
    將清單檔案中的key-value對提取到META-INF/MANIFEST.MF檔案中。
  • jar tf test.jar檢視jar包內容;
  • jar tf test.jar > a.txt:如果jar包中的檔案路徑和檔案非常多,用上一個命令就無法檢視所有,所以用重定向將顯示結果儲存到檔案中。
  • jar tvf test.jar:檢視詳細內容;
  • jar xf test.jar解壓,將jar檔案解壓到當前目錄下;
  • jar xvf test.jar解壓,顯示解壓過程的資訊;
  • jar uf test.jar Hello.class:更新test.jar中的Hello.jar檔案,如果存在則覆蓋,否則新增;
  • jar uvf test.jar Hello.class:更新時顯示詳細資訊;

建立可用jar包

jar命令-e選項,該選項指定JAR包中作為程式入口的主類的類名。
jar cvfe test.jar test.Test test
上面的命令把test目錄下的所有檔案都壓縮到test.jar包中,並指定使用test.Test類作為程式入口。
執行上面JAR包有兩種方式:

  • java -jar test.jar
  • javaw test.jar

當建立JAR包時,所有類都必須放在與包結構對應的目錄結構中。就像上面-e選項指定的Test類,表明入口類為Test類。因此在JAR包下包含Test.class檔案。