两种方式修改jar内配置文件(1 解压jar,修改并重新打包;2 直接修改jar内指定配置文件)
参考:修改jar包中的配置文件_木头房子的的博客-CSDN博客
-----------------------------------------------------------------------------------------
一、jar工具直接修改包内文件
1. 列出jar包中的所有目录及目录下文件,找到需要修改的文件并复制路径(如果知道文件具体位置,则跳过此步)


#列出jar下所有目录及目录下文件
jar tf test.jar
2. 提取jar包中需要修改的文件(会在jar所在目录生成一个对应文件的目录),编辑并保存新增目录下的文件

#取出jar包中的指定文件
jar xf test.jar BOOT-INF/classes/application.yml
#使用vim命令或者其他方式修改文件 并保存
vim BOOT-INF/classes/application.yml

3. 更新配置文件到远jar包内

#更新配置文件application.yml到test.jar包内
jar uf test.jar BOOT-INF/classes/application.yml
时间被修改了,表示更新包成功

-----------------------------------------------------------------------------------------
同上 jar uf 命令打入文件到jar包:
1. 直接解压 .jar文件
2. 保留解压目录下要替换的文件,其他文件删掉
3. 将jar解压后的BOOT-INF文件夹放到要打入的jar包同级目录

4. 使用 jar uf 命令将对应目录下的文件打入jar包
#更新配置文件 将application.yml到test.jar包内
jar uf test.jar BOOT-INF/classes/application.yml
#如果有内部类,则需要对文件名中的$符号做特殊处理
#错误示例
#jar uf test.jar BOOT-INF/classes/application.yml
#正确示例
5. 如遇内部类、文件名包含$符号的情况处理
文件名包含$符号,需要在uf命令的$符号前使用\,如果不用\ 则可能导致当前文件打不进jar包
#将文件名包含$符号的文件打入jar
jar uf test.jar BOOT-INF/classes/Test\$TestInner.Class
-----------------------------------------------------------------------------------------
命令说明
-t #列出归档目录
-x #从档案中提取指定的 (或所有) 文件
-u #更新现有的归档文件
-f #指定归档文件名
二. unzip方式解压并更新jar包(不建议使用,有可能导致包不可用)
1. 解压jar到临时目录

#将test.jar解压到新目录,新目录自动命名为testTemp
unzip -x test.jar -d testTemp

2. 修改指定文件(这里修改文件application.yml;使用vim命令或者其他方式修改文件,然后保存)

#进入临时目录下,修改需要修改的文件并保存
cd testTemp/BOOT-INF/classes/
#编辑文件,编辑完保存
vim application.yml
3. 在临时子目录中更新jar文件

#回到jar的解压临时目录
cd /root/TestFolder/testTemp/
#在临时子目录中更新原jar文件(这里用相对路径../进行更新上层目录下的jar文件)
zip -ru ../test.jar *
#删除临时目录
rm -rf testTemp

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)