1. 程式人生 > >技術小蝸牛的爬行生活

技術小蝸牛的爬行生活

1、jar包

JAR包是Java中所特有一種壓縮文件,其實大家就可以把它理解為.zip包。當然也是有區別的,JAR包中有一個META-INF\MANIFEST.MF檔案,當你找成JAR包時,它會自動生成。

JAR包是由JDK安裝目錄\bin\jar.exe命令生成的,當我們安裝好JDK,設定好path路徑,就可以正常使用jar.exe命令,它會用lib\tool.jar工具包中的類。

2、jar命令

jar命令格式:jar {c t x u f }[ v m e 0 M i ][-C 目錄]檔名…

其中{ctxu}這四個引數必須選選其一。[v f m e 0 M i ]是可選引數,檔名也是必須的。

-c 建立一個jar包
-t 顯示jar中的內容列表
-x 解壓jar包
-u 新增檔案到jar包中
-f 指定jar包的檔名

-v 生成詳細的報造,並輸出至標準裝置
-m 指定manifest.mf檔案.(manifest.mf檔案中可以對jar包及其中的內容作一些一設定)
-0 產生jar包時不對其中的內容進行壓縮處理
-M 不產生所有檔案的清單檔案(Manifest.mf)。這個引數與忽略掉-m引數的設定
-i 為指定的jar檔案建立索引檔案
-C 表示轉到相應的目錄下執行jar命令,相當於cd到那個目錄,然後不帶-C執行jar命令

3、jar使用案例

  1. 建立jar包
    jar cf hello.jar hello 利用test目錄生成hello.jar包,如hello.jar存在,則覆蓋

  2. 建立並顯示打包過程
    jar cvf hello.jar hello 利用hello目錄建立hello.jar包,並顯示建立過程
    例:E:>jar cvf hello.jar hello
    標明清單(manifest)
    增加:hello/(讀入= 0) (寫出= 0)(儲存了 0%)
    增加:hello/TestServlet2.class(讀入= 1497) (寫出= 818)(壓縮了 45%)
    增加:hello/HelloServlet.class(讀入= 1344) (寫出= 736)(壓縮了 45%)
    增加:hello/TestServlet1.class(讀入= 2037) (寫出= 1118)(壓縮了 45%)

  3. 顯示jar包
    jar tvf hello.jar 檢視hello.jar包的內容
    指定的jar包必須真實存在,否則會發生FileNoutFoundException。

  4. 解壓jar包
    jar xvf hello.jar 解壓hello.jar至當前目錄

  5. jar中新增檔案
    jar uf hello.jar HelloWorld.java 將HelloWorld.java新增到hello.jar包中

  6. 建立不壓縮內容jar包
    jar cvf0 hello.jar *.class 利用當前目錄中所有的.class檔案生成一個不壓縮jar包

  7. 建立帶manifest.mf檔案的jar包
    jar cvfm hello.jar manifest.mf hello
    建立的jar包多了一個META-INF目錄,META-INF止錄下多了一個manifest.mf檔案,至於manifest.mf的作用,後面會提到.

  8. 忽略manifest.mf檔案
    jar cvfM hello.jar hello 生成的jar包中不包括META-INF目錄及manifest.mf檔案

  9. 加-C應用:
    jar cvfm hello.jar mymanifest.mf -C hello/
    表示在切換到hello目錄下然後再執行jar命令

  10. -i為jar檔案生成索引列表
    當一個jar包中的內容很好的時候,你可以給它生成一個索引檔案,這樣看起來很省事。
    jar i hello.jar 執行完這條命令後,它會在hello.jar包的META-INF資料夾下生成一個名為INDEX.LIST的索引檔案,它會生成一個列表,最上邊為jar包名。

  11. 匯出解壓列表
    jar tvf hello.jar >hello.txt 如果你想檢視解壓一個jar的詳細過程,而這個jar包又很大,螢幕資訊會一閃而過,這時你可以把列表輸出到一個檔案中,慢慢欣賞!

  12. jar -cvf hello.jar hello/*
    例如原目錄結構如下:
    hello
    |—com
    |—org

    你本想只把com目錄和org目錄打包,而這時jar命令會連同hello目洋也一塊打包進。這點大家要注意。jar命令生成的壓縮檔案會包含它後邊出的目錄。我們應該進入到hello目錄再執行jar命令。

注意:manifest.mf這個檔名,使用者可以任指定,但jar命令只認識Manifest.mf,它會對使用者指定的檔名進行相應在的轉換,這不需使用者擔心。

3、Manifest.mf檔案編寫規則:

manifest.mf的編寫一定要注意一些細節:

  1. 不能有空行和空格的地方
    第一行不可以是空行( 第一行的行前不可以有空行),行與行之間不能有空行,第行的行尾不可以有空格
  2. 一定要有空行的地方
    最後一行得是空行(在輸完你的內容後加一個回車就OK)
  3. 一定有空格的地方
    key: value 在分號後面一定要寫寫一個空格

4、建立可執行的jar包

5、