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)
jar - 操作jar包的工具的更多相关文章
- 查找对应jar的maven包
当原有项目换成maven项目时,往往不知道具体jar包在maven里叫什么.这边文章教你如何去找到自己想要的jar的maven包. 工具/原料 浏览器 方法/步骤 1 登录一下网站 http: ...
- Java 操作jar包工具类以及如何快速修改Jar包里的文件内容
需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...
- 修改jar包配置文件的正确操作,jar包解压出来的文件夹重新打成jar,不依靠开发工具!!!!
修改jar包配置文件的正确操作,有的时候通过一些解压工具可以对内部的文件进行修改,但是有时候会无效.这就很烦了 一.背景: 有一个springboot项目,事先我已经用编译好打成jar包以 ...
- 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 ...
- 自己动手写文件查找,字符串查找,查询jar包等工具
文件查找——搜索当前目录下的文件 知道大概的文件名称,使用 findf FileName findf.py import argparse, re, os from os.path import jo ...
- java -jar 执行jar包出现 java.lang.NoClassDefFoundError
我用idea工具将自己开发java程序打成一个可执行的jar包,当然用eclipse或者直接用jar命令行都无所谓,本质都是将程序归档到一个压缩包,并附带一个说明清单文件. 打jar的操作其实很简单, ...
- jar与war 包解压
JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包.当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成.JAR包是 ...
- Android 编程下如何修改 jar 文件的包名
首先我们要说说为什么要修改 jar 文件的包名,jar 包我们会非常高频率的使用,尤其是用一些其他三方库的时候,往往把 java 代码打包成 jar 文件,方便项目依赖使用.笔者在开发过程中遇到过一些 ...
- swt生成、jar可执行包生成.exe可执行文件(giter)
http://tomfish88.iteye.com/blog/1074786 —————————————————————————————————————————————————————————— 最 ...
随机推荐
- zookeeper+Dubbo环境搭建及简单Demo
1 安装zk https://www.cnblogs.com/feifeicui/p/11175502.html 2 安装 dubbo-admin https://www.cnblogs.com/fe ...
- CISCO DHCP全攻略详解
原文链接地址:https://bbs.51cto.com/thread-800321-1.html 最近看到大家经常由于DHCP的问题犯愁, 为了让大家更明白的了解DHCP并且会配置,特此发这个贴 相 ...
- phpspreadsheet 中文文档 粗翻版
2019年10月11日09:32:33 官方使用文档 https://phpspreadsheet.readthedocs.io/en/stable/topics/accessing-cells/ ...
- SonarQube + Jenkins代码审查环境安装文档 v1.2
1. 安装SonarQube 1.1. 下载 下载地址:https://www.sonarqube.org/downloads/ 本次使用安装包为:sonarqube-7.4.zip 需要提前准备jd ...
- 使用vs code开发.net core2.2时OmniSharp.MSBuild.ProjectLoader无法解析"xxx"的解决方法
如图: 都是常用的nuget包呢,怎么无法解析呢? 第一反应是环境问题,果断搜索,baidu.google.bing.github一顿好搜啊,竟没有找到答案,看来是掉进了一个黄金坑! 重装vscode ...
- 多用户远程连接设置(WindowsServer2008/Win7)
一.Windows server2008 1.点击计算机--->右键属性打开系统对话框.进行如图设置. 2.在开始菜单--->运行中输入gpedit.msc打开本地组策略编辑器对话框. 3 ...
- ssh_exchange_identification: read: Connection reset by peer 解决思路
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Jdk_yxs/article/deta ...
- win7下IntelliJ IDEA使用curl
curl是利用URL语法在命令行方式下工作的开源文件传输工具 curl命令可以在开发web应用时,模拟前端发起的HTTP请求 1.下载curl https://curl.haxx.se/downloa ...
- mysql批量更新数据,循环select记录然后更新某一字段
-- 处理IEMI重复的历史数据,建档日期(只有年月日)倒序,档案ID倒序,根据IMEI查档案,查询的结果,相同IMEI下的第一条记录的IEMI不处理,其他的记录的imei 改为空. -- USE ` ...
- html5传感器
html5传感器(注意苹果和安卓方向是相反的 回调函数触发的速度苹果要快很多 设置坐标不要设置在回调函数里)以下是代码<pre><!DOCTYPE html><html ...