jar – Java 歸檔工具

來源:互聯網
上載者:User
jar - Java 歸檔工具

將多個檔案合并成單個 JAR 歸檔檔案。

結構
jar [ options ] [manifest] destination input-file [input-files]
說明

jar 工具是個 java 應用程式,可將多個檔案合并為單個 JAR 歸檔檔案。jar 是個多用途的存檔及壓縮公用程式,它基於 ZIP 和 ZLIB 壓縮格式。然而,設計 jar 的主要目的是便於將 java  applet 或應用程式打包成單個歸檔檔案。將 applet 或應用程式的組件( .class 檔案、映像和聲音)合并成單個歸檔檔案時,可以用 java 代理(如瀏覽器)在一次 HTTP 交易處理過程中 對它們進行下載,而不是對每個組件都要求一個新串連。這大大縮短了下載時間。jar 還能壓縮檔,從而進一步提高了下載速度。此外,它允許 applet 的作者對檔案中的各個項進行簽名,因而可認證其來源。jar 工具的文法基本上與 tar 命令的文法相同。

工具是個 java 應用程式,可將多個檔案合并為單個 JAR 歸檔檔案。jar 是個多用途的存檔及壓縮公用程式,它基於 ZIP 和 ZLIB 壓縮格式。然而,設計 jar 的主要目的是便於將 java  applet 或應用程式打包成單個歸檔檔案。將 applet 或應用程式的組件( .class 檔案、映像和聲音)合并成單個歸檔檔案時,可以用 java 代理(如瀏覽器)在一次 HTTP 交易處理過程中 對它們進行下載,而不是對每個組件都要求一個新串連。這大大縮短了下載時間。jar 還能壓縮檔,從而進一步提高了下載速度。此外,它允許 applet 的作者對檔案中的各個項進行簽名,因而可認證其來源。jar 工具的文法基本上與 tar 命令的文法相同。

jar 工具的輸入檔案分為三種類型:

  • 資訊清單檔(可選)
  • 目標 jar 檔案
  • 待歸檔的檔案

通常用法是:

% jar cf myjarfile *.class

在這個樣本中,目前的目錄中的所有類檔案都被放置到名為 "myjarfile" 的檔案中。資訊清單檔由 jar 工具自動產生,並且始終是 jar 檔案的第一項。預設情況下,它被命名為 META-INF/MANIFEST.MF。資訊清單檔是儲存與歸檔有關的元資訊的地方。有關如何將元資訊儲存到資訊清單檔的詳細資料,請參閱清單規範。

如果事先已有一個資訊清單檔且希望 jar 工具將它用於新的 jar 歸檔,則可以用 -m 選項來指定它:

% jar cmf myManifestFile myJarFile *.class

清單使用 RFC822 ascii 格式,因此,很容易查看和處理“資訊清單檔”的內容。


選項


c
在標準輸出上建立新歸檔或空歸檔。
t
在標準輸出上列出內容表。
 
x file
從標準輸入提取所有檔案,或只提取指定的檔案。如果省略了 file,則提取所有檔案;否則只提取指定檔案。
 
f
第二個參數指定要處理的 jar 檔案。在 c (建立)情形中,第二個參數指的是要建立的 jar 檔案的名稱(不是在標準輸出上)。在 t(表)或 x(抽取)這兩種情形中,第二個參數指定要列出或抽取的 jar 檔案。
 
v
在標準錯誤輸出裝置上產生長格式的輸出結果。
 
m
包括指定的現有資訊清單檔中的清單資訊。用法舉例:
jar cmf myManifestFile myJarFile *.class
0
只儲存,不進行 ZIP 壓縮。
 
M
不建立項目的資訊清單檔。
 
u
通過添加檔案或更改清單來更新現有的 JAR 檔案。例如:
jar -uf foo.jar foo.class

將檔案 foo.class 添加到現有的 JAR 檔案 foo.jar 中,而

jar umf manifest foo.jar

則用 manifest 中的資訊更新 foo.jar 的清單。

-C
在執行 jar 命令期間更改目錄。例如:
jar -uf foo.jar -C classes *

將 classes 目錄內的所有檔案加到 foo.jar 中,但不添加類目錄本身。

如果有的“files”是目錄,則該目錄將被遞迴處理。

樣本

將某個特定目錄中的所有檔案加到歸檔檔案中:

$ ls0.au            3.au            6.au            9.au            at_work.gif1.au            4.au            7.au            Animator.class  monkey.jpg2.au            5.au            8.au            Wave.class      spacemusic.au$ jar cvf bundle.jar *adding: 0.auadding: 1.auadding: 2.auadding: 3.auadding: 4.auadding: 5.auadding: 6.auadding: 7.auadding: 8.auadding: 9.auadding: Animator.classadding: Wave.classadding: at_work.gifadding: monkey.jpgadding: spacemusic.au$

如果您的 html 目錄中已有映像、音頻檔案和類的子目錄,可以將每個目錄歸檔到單個 jar 檔案中:

$ lsaudio classes images$ jar cvf bundle.jar audio classes imagesadding: audio/1.auadding: audio/2.auadding: audio/3.auadding: audio/spacemusic.auadding: classes/Animator.classadding: classes/Wave.classadding: images/monkey.jpgadding: images/at_work.gif$ ls -ltotal 142drwxr-xr-x   2 brown    green        512 Aug  1 22:33 audio-rw-r--r--   1 brown    green      68677 Aug  1 22:36 bundle.jardrwxr-xr-x   2 brown    green        512 Aug  1 22:26 classesdrwxr-xr-x   2 brown    green        512 Aug  1 22:25 images$

然後可以用 jar 工具和 "t" 選項查看 jarfile 中的項名:

$ lsaudio bundle.jar classes images$ jar tf bundle.jarMETA-INF/MANIFEST.MFaudio/1.auaudio/2.auaudio/3.auaudio/spacemusic.auclasses/Animator.classclasses/Wave.classimages/monkey.jpgimages/at_work.gif$

用長格式進行列舉(用 "v" 選項)將顯示歸檔檔案中各檔案的更為詳細的資訊,例如各檔案的大小和上次修改時間:

$ jar tvf bundle.jar   145 Thu Aug 01 22:27:00 PDT 1996 META-INF/MANIFEST.MF   946 Thu Aug 01 22:24:22 PDT 1996 audio/1.au  1039 Thu Aug 01 22:24:22 PDT 1996 audio/2.au   993 Thu Aug 01 22:24:22 PDT 1996 audio/3.au 48072 Thu Aug 01 22:24:23 PDT 1996 audio/spacemusic.au 16711 Thu Aug 01 22:25:50 PDT 1996 classes/Animator.class  3368 Thu Aug 01 22:26:02 PDT 1996 classes/Wave.class 12809 Thu Aug 01 22:24:48 PDT 1996 images/monkey.jpg   527 Thu Aug 01 22:25:20 PDT 1996 images/at_work.gif$

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.