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包内所有文件路径

添加文件进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

替换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! 

多个不同目录下文件更新。打入包的规则是,有则覆盖,没有则新增。所以有多个文件需要更新时,只需要把要更新的文件的目录结构创建好,直接更新目录即可。

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

参考博客:https://blog.csdn.net/sparkstrike/article/details/61922307

转载于:https://www.cnblogs.com/dance-walter/p/10287323.html

jar - 操作jar包的工具相关推荐

  1. 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao

     1  创建day14数据库,创建user.sql表: A 创建数据库 day14 B 创建数据表 users create table users ( id int primary keyaut ...

  2. eclipse导入jar包_在命令行上操作JAR,WAR和EAR

    eclipse导入jar包 尽管Java IDE和许多图形工具使查看和操作Java归档文件(JAR,WAR和EAR)文件的内容比以往更加容易,但有时我还是更喜欢使用命令行jar命令来完成这些任务. 当 ...

  3. jar包扫描工具: gamma

    1. 简介 本项目是一个jar包扫描工具,可以支持插件化订制不同的扫描逻辑 支持以下功能: 插件化订制扫描逻辑,让扩展更加容易 将扫描到的文件加载到jvm中以class的形式返回给处理插件,让扫描逻辑 ...

  4. 什么是log文件、jar文件、phar文件、Composer、包管理工具?

    log文件 log即日志,log文件就是日志文件,记录系统里进行的一些操作,也可以分析日志文件,查看系统里是否有反常行为,从而判断系统是否被入侵. jar文件 jar即Java ARchive,jav ...

  5. java excel 操作 jar包_[JAVA]使用POI向Excel中写入数据以及如何在Intellj IDEA中打jar包...

    freddon 发表于2018-05-30 阅读 1383 | 评论 0 给GF写的,现在记录下POI操作Excel读写过程;以及如何在Intellj IDEA中打jar包 代码如下: ``` imp ...

  6. java -jar 执行jar包出现 java.lang.NoClassDefFoundError

    http://www.cnblogs.com/xuzimian/p/7599304.html 我用idea工具将自己开发java程序打成一个可执行的jar包,当然用eclipse或者直接用jar命令行 ...

  7. jacob.jar 操作word文件 添加水印、图片(附查阅Microsoft Office VBA参考文档方式)

    jacob.jar 操作word文件 添加水印.图片 1.准备jacob.jar包和dll文件 将jacob.jar引入到工程, 64位: 将jacob-1.17-M2-x64.dll 放在C:\Wi ...

  8. 【Java】jar解压后重新打成jar,不依靠开发工具

    一.背景:        参考了网上的经验和Java在dos中的语句,实现将jar包解压成文件夹修改其中配置文件,在不依靠开发工具的情况下重新打回jar包. 二.具体步骤 1.如图所示,其他的是lib ...

  9. ear包目录_Java中的JAR/EAR/WAR包的文件夹结构说明(转)

    JAR包:打成JAR包的代码,一般作为工具类,在项目中,会应用到N多JAR工具包. WAR包:JAVA WEB工程,都是打成WAR包,进行发布,如果我们的服务器选择TOMCAT等轻量级服务器,一般就打 ...

最新文章

  1. -bash: sz: command not found
  2. 分布式、高并发、多线程,到底有什么区别?
  3. Android的消息处理机制——Looper,Handler和Message浅析
  4. 判断一个数是不是回文数
  5. Vue 使用 screenfull 实现全屏
  6. 二元相图软件_FactSage 软件教程 入门学习资料汇总
  7. html显示pcd,PCD5043 Datasheet(数据表) 10 Page - NXP Semiconductors
  8. Leetcode算法题(C语言)5--存在重复
  9. Activity——思维导图
  10. ⭐图例结合超硬核讲解shiro⭐
  11. git clean使用方法
  12. 玩平衡小车系列—TB6612FNG与直流电机控制教程
  13. JavaScript---文件下载处理文件下载失败兼容IE11文件下载
  14. mysql常用存储引擎以及悲观锁与乐观锁
  15. Ubuntu Linux的虚拟机安装Windows86X虚拟机安装(Ubuntu ISO64Bit)
  16. html表格纵向变横向,html表格,表头竖向固定,横向滚动的例子
  17. 【日语】编程相关日语词汇
  18. win7搜索文件 服务器,win7系统搜索不到文件的解决方法
  19. iPhone与win10传输大文件,使用局域网
  20. HDU5438--Ponds (拓排+BFS)

热门文章

  1. 如何正确选择开源数据库?你需要这的5个技巧
  2. fiddler抓取https请求
  3. deepin linux下python安装mysqldb
  4. 109. Convert Sorted List to Binary Search Tree
  5. [计算机网络] C++模拟telnet登陆SMTP服务发送邮件过程
  6. 尝试用单元测试做spring注入调用service
  7. sql server 2008 64位连接sql 2000服务器出错解决办法
  8. Activity动画效果笔记
  9. codevs 4560 NOIP2015 D2T2 子串
  10. 《博客园精华集--Sharepoint分册》第三轮结果