Linux下用jar命令替换war包中的文件【转】

时间:2022-10-04 14:32:12

问题背景:在Linux环境上的weblogic发布war包,有时候只是修改了几个文件,也要上传整个war包,这样很费时间,因此整理了一下Linux环境,更新单个文件的方法。

1.如果要替换的文件直接在war包的根目录(一级目录)下,直接使用jar uvf命令替换即可

如:替换a.war中b.xml文件

jar uvf a.war b.xml

注:b.xml需要和a.war在同一个目录下。

2.如果要替换的文件在war包的二级及以下目录下,则需要以下步骤:

(1)使用jar tvf war名称 | grep 目标文件名 查询出目标文件在war包中的目录

(2)使用jar xvf war名称 目标文件名(copy上面查出的全路径) 将目标文件及所在war包中的目录解压到当前路径

(3)修改目标文件的内容,或者将要新的目标文件替换掉提取出来的目标文件

(4)使用jar uvf war名称 目标文件名(和步骤(2)中的目标文件名相同) 将新目标文件替换到war包中

举例:替换SpringJMS04031240.war包中的ZcjdService.class,ZcjdService$1.class文件

(1)# jar -tvf SpringJMS04031240.war |grepZcjdService
Linux下用jar命令替换war包中的文件【转】

(2)# jar -xvf SpringJMS04031240.war WEB-INF/classes/com/inspur/service/ZcjdService.class
  Linux下用jar命令替换war包中的文件【转】

(3)# cp ZcjdService.class WEB-INF/classes/com/inspur/service/
  cp:是否覆盖"WEB-INF/classes/com/inspur/service/ZcjdService.class"? yes
Linux下用jar命令替换war包中的文件【转】

(4)# jar -uvf SpringJMS04031240.war WEB-INF/classes/com/inspur/service
  正在添加: WEB-INF/classes/com/inspur/service/ZcjdService.class(输入 = 4426) (输出 = 1892)(压缩了 57%)
Linux下用jar命令替换war包中的文件【转】

转自

作者:李晓LOVE向阳
来源:CSDN
原文:https://blog.csdn.net/u013310119/article/details/79850914
版权声明:本文为博主原创文章,转载请附上博文链接!