linux下使用命令修改jar包内某一个文件中的内容


需求:发现线上的bloc-cloud-gateway-2.1.4.RELEASE.jar包中配置文件的端口号配置错误,需要在线修改jar包中文件的application-pro.yml的端口号

1.方式一:vi命令大法

  1. ##vi bloc-cloud-gateway-2.1.4.RELEASE.jar
vi bloc-cloud-gateway-2.1.4.RELEASE.jar
  1. ##在vi后弹出的文件列表界面根据光标选中文件并回车。

vi后,输入/然后再输入要过滤的内容进行过滤,如输入/yml进行yml的快速定位
然后定位到相应的文件进行回车,进入文件内容修改界面
在这里插入图片描述

  1. ##修改端口信息并保存

修改后,然后输入冒号,再输入wq进行内容保存。
在这里插入图片描述

  1. ##最后再输入冒号及q!完成退出,至此jar包中文件内容已完成修改。
    在这里插入图片描述

2.方式二:jar命令方式进行在线更新文件内容

也可以采用解压文件修改内容后,重新打包更新回jar中的方式。

  1. ##查找application-pro.yml的位置

jar tvf bloc-cloud-gateway-2.1.4.RELEASE.jar|grep “yml”

[sendi@spring-cloud1 bloc-cloud-gateway]$ jar tvf bloc-cloud-gateway-2.1.4.RELEASE.jar|grep "yml"
  1228 Mon Jun 07 20:34:32 CST 2021 BOOT-INF/classes/application-dev.yml
  1219 Mon Jun 07 20:34:32 CST 2021 BOOT-INF/classes/application-pro.yml
  1227 Mon Jun 07 20:34:32 CST 2021 BOOT-INF/classes/application-tes.yml
   915 Mon Jun 07 18:52:04 CST 2021 BOOT-INF/classes/bootstrap.yml
  1. ##解出application-pro.yml这个文件出来

jar xvf bloc-cloud-gateway-2.1.4.RELEASE.jar BOOT-INF/classes/application-pro.yml

[sendi@spring-cloud1 bloc-cloud-gateway]$ jar xvf bloc-cloud-gateway-2.1.4.RELEASE.jar BOOT-INF/classes/application-pro.yml
 inflated: BOOT-INF/classes/application-pro.yml
  1. ##修改文件内容,将端口号修改好,重新压缩回jar
jar uvf bloc-cloud-gateway-2.1.4.RELEASE.jar BOOT-INF/classes/application-pro.yml
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐