问题背景:在Linux环境上的weblogic发布war包,或者SpringBoot工程打成JAR包运行,有时候只是修改了几个文件,也要上传整个war包,或者jar包,这样很费时间,因此整理了一下Linux环境,更新单个war包、jar包中文件的方法。

 

 

1.如果要替换的文件直接在war包、jar包的根目录(一级目录)下,直接使用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包中

举例替换JAR包单个文件的过程:

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

(1)# jar -tvf SpringJMS04031240.war |grepZcjdService


 

(2)# jar -xvf SpringJMS04031240.war WEB-INF/classes/com/inspur/service/ZcjdService.class
  

(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%)

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐