jar 包内的文件修改一共分为三个步骤:
- 解包,提取文件
- 修改文件
- 打包,修改文件
1. 找到目标文件路径
1
2
3
4
5
6
7
8
# 命令模板。${filename} 指的是目标文件的文件名,因为用的是 grep,所以支持模糊匹配
jar tvf xxx.jar | grep ${filename}
# 示例:查看 application-test.yml 文件的路径地址
[root@-node3 app-wechat]# jar tvf wechat.jar | grep application-test.yml
1243 Fri Jan 07 12:17:46 CST 2022 BOOT-INF/classes/application-test.yml
# 从输出的内容可以获知, 目标文件的路径:BOOT-INF/classes/application-test.yml
2. 解包,提取文件
1
2
3
4
5
6
# 命令模板。${dir} 就是上一步得到目标文件路径(BOOT-INF/classes/application-test.yml)
jar xvf xxxx.jar ${dir}
# 示例,提取出文件 application-test.yml 到本级目录下
[root@node3 app-wechat]# jar xvf wechat.jar BOOT-INF/classes/application-test.yml
inflated: BOOT-INF/classes/application-test.yml
此时文件已被解压,并在本机目录中。可以使用文本编辑器(vim
) 进行修改保存。
3. 打包,修改文件
1
2
3
4
5
6
7
8
# 命令模板。${dir} 是目标文件路径(BOOT-INF/classes/application-test.yml)
jar uvf xxx.jar ${dir}
# 示例:将修改后的目标文件再打进 jar 包中
[root@node3 app-wechat]# jar uvf wechat.jar BOOT-INF/classes/application-test.yml
adding: BOOT-INF/classes/application-test.yml(in = 1243) (out= 891)(deflated 28%)
# 从输出结果可以说明已成功修改 jar 包的目标文件
完结撒花 😂 ! 制作不易,如引用原文,必须附此原文链接,否则违者必究!😈