1. 程式人生 > >jar命令詳解

jar命令詳解

1.建立JAR檔案:jar cf test.jar test 該命令沒有顯示壓縮個過程,執行結果是當前路徑下的test路徑下的全部內容生成一個test.jar檔案。如果當前目錄中已經存在test.jar檔案,那麼該檔案將被覆蓋。 2.建立JAR檔案,並顯示壓縮過程:jar cvf test.jar test 該命令的結果同第一個命令,但由於v引數的作用,顯示出了打包過程。 3.不適用清單檔案:jar cvfM test.jar test 該命令的結果類似第二個命令,其中M選項表明不生成清單檔案。因此生成的test.jar包中沒有包含META-INF/MANIFEST.MF檔案。打包過程顯示資訊略有差別 4.自定義清單檔案內容:jar cvfm test.jar manifest.mf test
執行結果類似第二個命令,顯示資訊也相同,其中m選項指定讀取使用者清單檔案資訊。因此在生成的JAR包中清單檔案META-INF/MANIFEST.MF的內容有所不同,它會在原有清單檔案基礎上增加MANIFEST.MF檔案的內容。 當開發者向MANIFEST.MF清單檔案中增加自己的內容時,就需要藉助於自己的清單檔案了,清單檔案只是一個普通的文字檔案,使用記事本編輯即可。清單檔案的內容由如下格式的多個key-value對組成。 key:<空格>value
清單檔案的內容格式要求如下:
  • 每行只能定義一個key-value對,每行的key-value對之前不能有空格,即key-value對必須頂格寫。
  • 每組key-value對之間以“:”(英文冒號後緊跟一個英文空格)分隔,少寫了冒號或者空格都是錯誤的。
  • 檔案開頭不能有空行。
  • 檔案必須以一個空行結束。
可以將上面檔案儲存在任意位置,以任意檔名存放。例如儲存在當前路徑下,檔名為a.txt。命令如下: jar cvfm test.jar a.txt test 5.檢視JAR包內容:jar tf test.jar 在test.jar檔案已經存在的前提下,使用此命令可以檢視test.jar中的內容。 jar tf test.jar > a.txt 執行上面命令看不到輸出,但在當前路徑下有一個a.txt檔案,包含了jar包內容。 6.檢視JAR包詳細內容:jar tvf test.jar
該命令與第五個命令基本相似,但它更詳細。 7.解壓縮:jar xf test.jar 將test.jar檔案解壓縮到當前目錄下,不顯示任何資訊。 8.帶提示資訊解壓縮:jar xvf test.jar 解壓縮效果與第七個命令相同,但系統會顯示解壓過程的詳細資訊。 9.更新JAR檔案:jar uf test.jar Hello.class 更新test.jar中的Hello.class檔案。如果已存在Hello.class檔案,則使用新的檔案替換舊的檔案;如果不存在,則新增到test.jar檔案中。 10.更新時顯示詳細資訊:jar uvf test.jar Hello.class 這個命令與第九個命令相同,也用於更新test.jar檔案中的Hello.class檔案,但它會顯示詳細的壓縮資訊 清單檔案MANIFEST.MF檔案至少需要如下兩行: Manifest-Version: 1.0 Created-By: 1.8.0 (Oracle Corporation)