跳到主要内容

Modify-Config-File-In-jar

修改 JAR 包中的配置文件

修改 JAR 包中的配置文件可以通过解压、编辑和重新打包来实现,以下是具体步骤:

示例:修改 application.yml 文件

# 查看 JAR 包中的文件结构
jar tf application.jar | grep application.yaml

# 提取需要修改的配置文件
jar xf application.jar BOOT-INF/classes/application.yml

# 修改配置文件
vim BOOT-INF/classes/application.yml

# 替换IP
sed -i 's#localhost#192.168.137.1#g' BOOT-INF/classes/application.yml

# 将配置写回 JAR 包
jar uf application.jar BOOT-INF/classes/application.yml

1. 列出 JAR 包内容

使用以下命令查看 JAR 包中的文件结构,找到需要修改的文件路径:

jar tf test.jar | grep application.yaml

2. 提取目标文件

提取需要修改的配置文件,例如 application.yml

jar xf test.jar BOOT-INF/classes/application.yml

此时,文件会被解压到当前目录的对应路径。

3. 编辑配置文件

使用文本编辑器(如 vim)修改文件内容并保存:

vim BOOT-INF/classes/application.yml

4. 更新 JAR 包

将修改后的文件重新打包到原 JAR 文件中:

jar uf test.jar BOOT-INF/classes/application.yml

注意事项

如果文件路径中包含 $ 符号,需要在 $ 前加 \,例如:

jar uf test.jar BOOT-INF/classes/Test\$Inner.class

确保修改后的文件格式正确,否则可能导致程序运行失败。

替代方法:解压并重新打包整个 JAR 包

解压 JAR 文件:

unzip test.jar -d temp_dir

修改目标配置文件:

vim temp_dir/BOOT-INF/classes/application.yml

重新打包 JAR 文件:

cd temp_dir && zip -r ../test.jar *

这种方法适用于需要大规模修改的场景,但可能会导致部分元数据丢失,需谨慎使用。