jar - 操作jar包的工具


jar - Manipulates Java Archive (JAR) files.

jar命令是一種通用的存檔和壓縮工具,基於ZIP和ZLIB壓縮格式。

常用格式:
* 創建jar文件
jar c[efmMnv0] [jarfile] [manifest] [-C dir] file
* 更新jar
jar u[efmMnv0] [jarfile] [manifest] [-C dir] file
* 解壓jar
jar x[vf] [jarfile] file
* 列出jar目錄文件
jar t[vf] [jarfile] file
* jar文件添加索引
jar i jarfile [-Joption ...]

常用選項:

  • -c :創建新har文件
  • -t :列出檔案目錄
  • -x :從檔案中提取指定的(或所有)的文件
  • -u :更新現有檔案
  • -v :輸出詳細信息
  • -f :指定檔案名
  • -m :包含指定清單文件中的清單信息
  • -M :不創建條目的清單文件
  • -i :為指定的jar文件生成索引信息
  • -C :更改為指定的目錄並包含以下文件

**示例:** ``` ~]# jar xf businessShopService-1.0.jar BOOT-INF/lib/ #解壓出BOOT-INF/lib目錄 ~]# ls ]# ls BOOT-INF businessShopService-1.0.jar test.class

~]# rm -rf BOOT-INF

~]# jar -xf businessShopService-1.0.jar #解壓jar包,后還可根jar包內目錄路徑,只解壓出某個你想要的路徑
~]# ls
BOOT-INF businessShopService-1.0.jar META-INF org test.class

~]# jar -tf businessShopService-1.0.jar #查看jar包內所有文件路徑

<br />


添加文件進jar包:

這里我們給此jar包org內添加test目錄和目錄下的test.class文件

~]# jar tf commons-beanutils-1.9.3.jar | grep "org/test"

~]# ls
commons-beanutils-1.9.3.jar test.class
~]# cat test.class
hello world
~]# mkdir org/test -p
~]# mv test.class org/test/ #這里新增的文件路徑得和jar包內的目錄對應起來,不然會提示沒有這個文件或目錄。

~]# jar uvf commons-beanutils-1.9.3.jar org/test/test.class #將文件增加進jar包的相應目錄下,如jar包中沒有此目錄,則會自動創建
adding: org/test/test.class(in = 12) (out= 14)(deflated -16%)
~]# jar tf commons-beanutils-1.9.3.jar | grep "org/test" #文件加入成功。
org/test/test.class

查看jar包內新增文件內容是否正確

~]# cat $(jar tf commons-beanutils-1.9.3.jar| grep test.class)
hello world

<br />


替換jar包內容:

修改test.class內容

~]# echo "hello world! " > org/test/test.class

替換文件,操作與新增一致。

~]# jar uvf commons-beanutils-1.9.3.jar org/test/test.class #將文件增加進jar包的相應目錄下,如jar包中沒有此目錄,則會自動創建
adding: org/test/test.class(in = 12) (out= 14)(deflated -16%)
~]# jar tf commons-beanutils-1.9.3.jar | grep "org/test" #文件加入成功。
org/test/test.class

查看jar包內替換文件內容是否正確

~]# cat $(jar tf commons-beanutils-1.9.3.jar org/test/test.class) #路徑是jar包內文件的路徑
hello world!

<br />


多個不同目錄下文件更新。打入包的規則是,有則覆蓋,沒有則新增。所以有多個文件需要更新時,只需要把要更新的文件的目錄結構創建好,直接更新目錄即可。

]# jar uvf commons-beanutils-1.9.3.jar org/ #后直接寫目錄即可。
...

<br />




參考博客:[https://blog.csdn.net/sparkstrike/article/details/61922307](https://blog.csdn.net/sparkstrike/article/details/61922307)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM