程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java歸檔(jar)實用程序

Java歸檔(jar)實用程序

編輯:關於JAVA

Zip格式亦在Java 1.1的JAR(Java ARchive)文件格式中得到了采用。這種文件格式的作用是將一系列文件合並到單個壓縮文件裡,就象Zip那樣。然而,同Java中其他任何東西一樣,JAR文件是跨平台的,所以不必關心涉及具體平台的問題。除了可以包括聲音和圖像文件以外,也可以在其中包括類文件。
涉及因特網應用時,JAR文件顯得特別有用。在JAR文件之前,Web浏覽器必須重復多次請求Web服務器,以便下載完構成一個“程序片”(Applet)的所有文件。除此以外,每個文件都是未經壓縮的。但在將所有這些文件合並到一個JAR文件裡以後,只需向遠程服務器發出一次請求即可。同時,由於采用了壓縮技術,所以可在更短的時間裡獲得全部數據。另外,JAR文件裡的每個入口(條目)都可以加上數字化簽名(詳情參考Java用戶文檔)。
一個JAR文件由一系列采用Zip壓縮格式的文件構成,同時還有一張“詳情單”,對所有這些文件進行了描述(可創建自己的詳情單文件;否則,jar程序會為我們代勞)。在聯機用戶文檔中,可以找到與JAR詳情單更多的資料(詳情單的英語是“Manifest”)。
jar實用程序已與Sun的JDK配套提供,可以按我們的選擇自動壓縮文件。請在命令行調用它:

jar [選項] 說明 [詳情單] 輸入文件

其中,“選項”用一系列字母表示(不必輸入連字號或其他任何指示符)。如下所示:

c 創建新的或空的壓縮檔
t 列出目錄表
x 解壓所有文件
x file 解壓指定文件
f 指出“我准備向你提供文件名”。若省略此參數,jar會假定它的輸入來自標准輸入;或者在它創建文件時,輸出會進入標准輸出內
m 指出第一個參數將是用戶自建的詳情表文件的名字
v 產生詳細輸出,對jar做的工作進行巨細無遺的描述
O 只保存文件;不壓縮文件(用於創建一個JAR文件,以便我們將其置入自己的類路徑中)
M 不自動生成詳情表文件

在准備進入JAR文件的文件中,若包括了一個子目錄,那個子目錄會自動添加,其中包括它自己的所有子目錄,以此類推。路徑信息也會得到保留。
下面是調用jar的一些典型方法:

jar cf myJarFile.jar *.class
用於創建一個名為myJarFile.jar的JAR文件,其中包含了當前目錄中的所有類文件,同時還有自動產生的詳情表文件。

jar cmf myJarFile.jar myManifestFile.mf *.class
與前例類似,但添加了一個名為myManifestFile.mf的用戶自建詳情表文件。

jar tf myJarFile.jar
生成myJarFile.jar內所有文件的一個目錄表。

jar tvf myJarFile.jar
添加“verbose”(詳盡)標志,提供與myJarFile.jar中的文件有關的、更詳細的資料。

jar cvf myApp.jar audio classes image
假定audio,classes和image是子目錄,這樣便將所有子目錄合並到文件myApp.jar中。其中也包括了“verbose”標志,可在jar程序工作時反饋更詳盡的信息。

如果用O選項創建了一個JAR文件,那個文件就可置入自己的類路徑(CLASSPATH)中:
CLASSPATH="lib1.jar;lib2.jar;"
Java能在lib1.jar和lib2.jar中搜索目標類文件。

jar工具的功能沒有zip工具那麼豐富。例如,不能夠添加或更新一個現成JAR文件中的文件,只能從頭開始新建一個JAR文件。此外,不能將文件移入一個JAR文件,並在移動後將它們刪除。然而,在一種平台上創建的JAR文件可在其他任何平台上由jar工具毫無阻礙地讀出(這個問題有時會困擾zip工具)。
正如大家在第13章會看到的那樣,我們也用JAR為Java Beans打包。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved