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)

最新文章

  1. 重撸JS_1
  2. 请不要重复犯我在学习Python和Linux系统上的错误
  3. 元素查找(codevs 1230)
  4. table总结insertRow、deleteRow
  5. C#之多态
  6. 英文破折号(em dash)、连接号(en dash)与连字符(hyphen)的区别及各自用法是什么?
  7. iOS中获取各种文件的目录路径和文件
  8. json文件报expected name at 1 1错误
  9. 浅谈Spring事务隔离级别
  10. Push or Pull?
  11. IPC$概念及入侵方式研究
  12. pycharm中join的应用
  13. docker运行php网站程序
  14. A - Longest k-Good Segment (尺取法)
  15. PAT甲题题解-1043. Is It a Binary Search Tree (25)-二叉搜索树
  16. Oracle plsql乱码
  17. HDU 1181 变形课 (深搜)
  18. Docker 入门 到部署Web 程序- (阿里面试常用的docker命令和优点)
  19. [Android]Adb connection Error:远程主机强迫关闭了一个现有的连接
  20. 使用QT开发GoogleMap瓦片显示和下载工具

热门文章

  1. The last packet successfully received from the server was 1,480 milliseconds ago.
  2. API设计之道
  3. 开源OCR识别库-Tesseract介绍
  4. Vue生命周期 以及应用场景
  5. (转)Intellij Idea工具栏添加打开选中文件的资源管理器位置
  6. SpringBoot系列教程web篇之全局异常处理
  7. error adding symbols:DSO missing from command line
  8. 去除Chrome“请停用以开发者模式运行的扩展程序”提示
  9. js 数组传统方法
  10. Win10家庭版升级到企业版的方法