W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
JAR(Java Archive)是基于ZIP文件格式的文件格式。
它用于捆綁Java應用程序或小程序的資源,類文件,聲音文件,圖像等。它還提供數(shù)據壓縮。
一個JAR文件作為一種特殊類型的ZIP文件。您可以對JAR文件的內容進行數(shù)字簽名,以提供安全性。它提供了一個平臺無關的文件格式。
您可以使用JAR API在Java程序中處理JAR文件。
JAR文件可以具有可選的META-INF目錄,以包含包含應用程序配置信息的文件和目錄。
下表列出了META-INF目錄中的條目。
名稱 | 類型 | 目的 |
---|---|---|
MANIFEST.MF | File | 它包含擴展和包相關數(shù)據。 |
INDEX.LIST | File | 它包含軟件包的位置信息。類加載器使用它來加快類搜索和加載過程。 |
X.SF | File | X是基本文件名。它存儲jar文件的簽名。 |
X.DSA | File | X是基本文件名。它存儲相應簽名文件的數(shù)字簽名。 |
/services | Directory | 此目錄包含所有服務提供程序配置文件。 |
JDK提供了一個jar工具來創(chuàng)建和操作JAR文件。您還可以使用java.util.jar包中的類使用Java API創(chuàng)建和操作JAR文件。
JAR API有一些新類來處理清單文件。 Manifest類表示清單文件。
要使用jar工具創(chuàng)建JAR文件,許多命令行選項都可用。
以下代碼列出了jar工具的命令行選項。
選項 | 描述 |
---|---|
-c | 創(chuàng)建一個新的JAR文件。 |
-u | 更新現(xiàn)有的JAR文件。 |
-x | 從JAR文件中提取命名文件或所有文件。 |
-t | 列出JAR文件的目錄。 |
-f | 指定JAR文件名。 |
-m | 包括來自指定文件的清單信息。 |
-M | 不要創(chuàng)建清單文件。 |
-i | 為指定的JAR文件生成索引信息。它在JAR文件中的META-INF目錄下創(chuàng)建一個INDEX.LIST文件。 |
-0 | 不要壓縮JAR文件中的條目。只存儲它們。選項值為零,表示零壓縮。 |
-e | 將指定的類名添加為清單文件主要部分中Main-Class條目的值。 |
-v | 在標準輸出上生成詳細輸出 |
-C | 切換到指定的目錄并在JAR文件中包括以下文件。請注意,該選項為大寫(C)。小寫字母(c)用于指示創(chuàng)建JAR文件選項。 |
使用以下命令創(chuàng)建一個帶有兩個類文件(名為A.class和B.class)的test.jar JAR文件:
jar cf test.jar A.class B.class
在上面的命令中,選項c表示我們正在創(chuàng)建一個新的JAR文件,選項f表示我們正在指定一個JAR文件名,它是test.jar。
在命令結束時,我們可以指定要包括在JAR文件中的一個或多個文件名或目錄名。
要查看test.jar文件的內容,請執(zhí)行以下命令:
jar tf test.jar
選項t表示我們對JAR文件的目錄感興趣。
選項f表示我們指定了JAR文件名,在這種情況下是test.jar。
上述命令將生成以下輸出:
META-INF/ META-INF/MANIFEST.MF A.class B.class
jar
命令自動為您創(chuàng)建了兩個額外的東西:一個名為META-INF的目錄和一個名為MANIFEST.MF的文件在META-INF目錄中。
以下命令將通過在當前工作目錄中包含所有內容來創(chuàng)建test.jar文件。
jar cf test.jar *
以下命令將創(chuàng)建一個JAR文件,其中包含book / archives目錄中的所有類文件以及book / images目錄中的所有圖像。
jar cf test.jar book/archives/*.class book/images
我們可以在創(chuàng)建JAR文件時使用命令行選項指定清單文件。
清單文件是一個文本文件,其中包含您的JAR文件的所有清單條目。
清單文件必須在文件末尾有一個空行。否則,將不處理清單文件中的最后一個條目。
以下命令將在創(chuàng)建test.jar文件(包括當前目錄中的所有文件和子目錄)時使用manifest.txt文件。
jar cfm test.jar manifest.txt *
上述命令中使用的選項的順序很重要。 f出現(xiàn)在m之前,我們必須在清單文件名manifest.txt之前指定JAR文件名test.jar。
您可以重寫以上命令,如下所示:
jar cmf manifest.txt test.jar *
使用選項u更新現(xiàn)有的JAR文件條目或其清單文件。
以下命令將向現(xiàn)有的test.jar文件添加一個C.class文件:
jar uf test.jar C.class
假設我們有一個test.jar文件,并且我們要將它的清單文件中的Main-Class條目更改為HelloWorld類。您可以使用以下命令:
jar ufe test.jar HelloWorld
在此命令中,選項u表示我們正在更新JAR文件;選項f指示我們指定JAR文件名,即test.jar,選項e表示我們在test.jar文件中為MANIFEST.MF文件指定Main-Class條目的值為HelloWorld。
我們可以為JAR文件生成一個索引文件。它用于加快類加載。
在創(chuàng)建JAR文件后,必須在單獨的命令中使用選項i和jar命令。
jar i test.jar
此命令將向test.jar文件添加一個META-INF / INDEX.LIST文件。我們可以通過使用以下命令列出test.jar文件的目錄來驗證它:
jar tf test.jar
要從JAR文件中提取所有或部分條目,請使用選項x與jar命令。
從test.jar文件中提取所有條目
jar xf test.jar
選項x從JAR文件中提取條目。
選項f指定文件名,它是test.jar。
上述命令將從當前工作目錄中的test.jar文件中提取所有條目。
它將創(chuàng)建與test.jar文件中存在的相同的目錄結構。
要從JAR文件中提取單個條目,請在命令結尾處列出它們。條目應該用空格分隔。
以下命令將從test.jar文件中提取A.class和book / HelloWorld.class條目:
jar xf test.jar A.class book/HelloWorld.class
要從書目錄中提取所有類文件,可以使用以下命令:
jar xf test.jar book/*.class
使用選項t與jar命令來列出標準輸出上的JAR文件的目錄。
jar tf test.jar
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: