一、jar命令作用:
進行打包 -- 把多個文件打包成一個壓縮包 -- 這個壓縮包和Winzip的壓縮格式是一樣的.
區別在於jar壓縮的文件默認多一個META-INF的文件夾,該文件夾下包含一個Manifest.mf(清單文件)的文件
通常來說jar命令得到的壓縮包有三種(壓縮格式完全一樣,只是后綴名不同而已):
A、*.jar - 它里面包含N個class文件。
B、*.war (web) - 它是一個web應用打包生成的。
C、*.ear(Enterprise) -它是一個企業應用打包生成的包
二、jar命令用法:
-c 創建新的歸檔文件
-t 列出歸檔目錄和文件
-x 解壓縮已歸檔的指定(或所有)文件
-u 更新現有的歸檔文件
-v 在標准輸出中生成詳細輸出 / 提供更詳細輸出信息
-f 指定歸檔文件名 / 為壓縮包指定名字
-m 包含指定清單文件中的清單信息
-e 為捆綁到可執行 jar 文件的獨立應用程序
指定應用程序入口點
-0 僅存儲,不壓縮,只是打包;不使用任何 ZIP 壓縮
-M 不創建條目的清單文件 META-INF/MANIFEST.MF
-i 為指定的 jar 文件生成索引信息
-C 更改為指定的目錄並包含其中的文件
1、創建壓縮包
jar -cf mytest.jar *.class
//將當前目錄下的*.class文件壓縮到上一級目錄的mytest.jar文件內
jar -cvf mytest.jar *.class
2、創建壓縮包,不生成清單文件MANIFEST.MF 大寫M
jar -cMf mytest.jar *.class
3、查看壓縮包
jar -tf mytest.jar
jar -tvf mytest.jar
4、解壓
jar -xf mytest.jar //解壓到當前目錄
jar -xvf mytest.jar 解壓可看到詳細的過程
5、更新壓縮包
jar -uvf mytest.jar 要加入的指定class文件
為什么要制作jar包?
一個真實項目中,涉及到的class文件是非常多的。非常多的class文件存在以下問題:
a.系統管理不方便;
b.JVM要分開依次加載不同的*.class文件,效率很低,於是就可以把多個class文件打包成一個jar包,這樣好處是:
①.多個class文件都統一成一個jar包方便管理;
②.JVM可以直接加載jar包就可以一次性加載N個類,效率更高
打包成可執行性jar包
通過 -e 選項 告訴系統哪個類是該jar包的主類
jar -cvfe mytest.jar UserTest *.class(指定的主類)
如果機器上安裝了獨立的虛擬機,只要雙擊“可執行性”的jar包即可執行
java -jar jar包名 -指定要執行的jar包
如果不需要生成清單文件MANIFEST.MF,可以直接使用WinRAR或Winzip來壓縮(必須壓縮成zip格式),解壓也可如此