豫ICP备17040950号-2

linux下如何在不解压jar包查看或修改配置文件(二)

文章目录
  1. 1. 方式一
  2. 2. 方式二

有时候部署JAVA程序经常因为不同开发机器上的一部分配置不同,导致项目中的配置文件有些用户名密码等信息有差异,临时打包的时候经常忘记修改,可以重新打包,但是重新打包如果花费时间过长的时候这样做就太不划算了。因此专门总结了不同的方式,找了一种不需要安装其他工具的方式,使用JAVA自带的jar指令方法,详细记录一下我的修改过程(以下过程按照顺序执行,可以跳过某些步骤):

方式一

在jar包所在的路径打开cmd窗口/Powershell窗口
方法是:进入jar包所在的路径,按住shift同时点击右键,选择“打开PowerShell窗口”;

列出jar包的文件清单
(非必须,主要是为了方便查看需要修改的文件的路径)

1
2
//查看文件清单列表
jar tf abc.jar | grep application.properties

将需要修改的文件解压出来

1
2
//解压需修改的文件
jar xf abc.jar BOOT-INF/classes/application.properties

此时,会在当前jar包的同级目录下生成一个相对路径文件夹(所要修改的文件就在这里),然后修改文件中的内容并保存

1
2
//编辑配置文件
vi application.properties

使用修改后的文件替换jar包中对应的文件

1
2
//使用刚刚修改的文件替换jar包中的对应文件,输入命令
jar uf abc.jar BOOT-INF/classes/application.properties

以上是解压相对的文件,修改内容,再替换掉jar中的对应文件。

方式二

也可以直接使用修改后的代码文件(因为我的是application.properties,所以不存在编译啥的),按照以下步骤:

创建一个和带替换文件相同的空路径,把新的文件放在该目录下,然后直接执行“jar uf ……”的那个命令即可。

比如我的前面的情况:application.properties文件在jar中的相对路径是“BOOT-INF/classes/application.properties”,那我就在jar包的同级目录创建一个“BOOT-INF/classes”的空路径,然后将新的application.properties放在classes文件夹,直接执行“jar uf ……”命令即可完成替换。