1. 程式人生 > >常用jar命令與

常用jar命令與

round 創建 color 如果 exceptio 有一種 -m lis file

JAR包是Java中所特有一種壓縮文檔。存儲格式格式就是.zip包。
但是與ZIP包不同的地方是,生成JAR包時候,會自動添加一個META-INF\MANIFEST.MF文件

命令參數
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命令

使用示例
(1)創建jar包
jar cf hello.jar file1 file2
創建hello.jar,並將file1,file2 (jar命令可以指定多個文件) 添加到hello.jar包中,如hello.jar存在,則覆蓋。
創建後的jar包格式如下
hello.jar
├ META-INF
│ └ MANIFEST.MF
├ file1

└ file2

(2)創建並顯示打包過程
jar cvf hello.jar test
輸出如下(不同操作系統輸出可能略有不同)
已添加清單
: test/(輸入 = 0) (輸出 = 0)(存儲了 0%)
正在添加:test/(輸出= 0) (輸出 = 0)(存儲了 0%)
正在添加:test/Test1.class(輸出= 1497) (輸出= 818)(壓縮了 45%)
正在添加:test/Test2class(輸出= 1344) (輸出= 736)(壓縮了 45%)

(3)顯示jar包
jar tvf hello.jar
查看hello.jar包的內容
如果jar包不存在,會拋出java.io.FileNotFoundException

如果jar包格式錯誤(不是ZIP格式),會拋出 java.util.zip.ZipException

(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)創建jar包(指定的MANIFEST.MF文件)
jar cvfm hello.jar manifest.mf file1
創建的jar包時,會使用指定的 META-INF/MANIFEST.MF文件

(8)忽略manifest.mf文件
jar cvfM hello.jar test
生成的jar包中不包括META-INF目錄及MANIFEST.MF文件

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

(10)jar文件生成索引列表
jar i hello.jar
在hello.jar包的META-INF文件夾下生成一個名為INDEX.LIST的索引文件。

常用jar命令與