jar命令替换jar/war包中文件

jar命令替换jar/war包中文件
chify最近项目里底层war包lib目录里的一个jar里的配置文件需要改动,因为没有源码,只能使用jar命令解压替换文件之后才能修改,这里记录一下jar的命令,方便日后自己用时翻阅。
jar 命令
.jar(Java Archive)是Java中的一种归档文件格式,只要安装了 JDK ,都可以使用 jar 命令将多个文件打包成一个 .jar 格式的 jar 包或者 war 包,就像 Linux 里的 tar 命令一样,以下为 jar 命令的参数:
1 | -c 创建一个jar包 |
解压 jar/war 文件
使用如下命令即可:
1 | jar -xvf ***.jar |
打包 jar/war 命令
使用如下命令即可压缩:
1 | jar -cvf test.war * # *表示当前目录所有的文件都打包进去 |
如果只想打包某个文件或者目录,连续后接文件(目录)名即可。
解包 jar/war 包后,替换相应文件,重新再打包就OK了。
完整示例
假设我们有一个部署在 Tomcat 下的 WAR 包 myapp.war,需要修改其中 lib/app-core.jar 里的配置文件 config.properties。
1. 备份原始文件
警告:操作前务必做好备份! 一旦打包出错,原始文件可能无法恢复。建议使用
cp命令保留副本。
1 | cp myapp.war myapp.war.bak |
2. 解压 war 包
1 | mkdir myapp_extracted |
解压后目录结构大致如下:
1 | myapp_extracted/ |
3. 解压目标 jar 包并修改
1 | cd WEB-INF/lib |
找到并修改目标文件:
1 | vi config/config.properties |
修改完成后重新打包 jar 包(注意:必须在 app-core.jar 解压后的根目录下执行):
1 | jar -cvf app-core.jar config/ BOOT-INF/ |
4. 重新打包 war 包
回到解压后的 war 根目录,重新打包:
1 | cd ../../ # 回到 myapp_extracted 目录 |
5. 验证
1 | # 检查新包中是否包含修改后的文件 |
确认无误后,即可将新的 myapp.war 部署到应用服务器中。
提示:如果 WAR 包较大、jar 文件较多,建议使用脚本自动化上述流程,减少人为操作失误。操作完成后,确认新包可正常启动后再删除备份文件。
评论
匿名评论隐私政策














