Linux命令替换jar或者war包中的单个文件

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包中的单个文件_第1张图片

(2)# jar -xvf SpringJMS04031240.war WEB-INF/classes/com/inspur/service/ZcjdService.class
  Linux命令替换jar或者war包中的单个文件_第2张图片

(3)# cp ZcjdService.class WEB-INF/classes/com/inspur/service/
  cp:是否覆盖"WEB-INF/classes/com/inspur/service/ZcjdService.class"? yes

(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包中的单个文件_第3张图片

你可能感兴趣的:(liunx命令)