更新spring boot jar包中的BOOT-INF/lib目录下的jar包

更新spring-boot jar包中的BOOT-INF/lib目录下的jar包

场景

需要更新lib目录下某个jar包的配置文件

失败的解决方法

用解压软件依次打开spring-boot jar包(设为a.jar)、BOOT-INF/lib目录下的jar包(设为b.jar),然后修改配置文件后保存回a.jar包中,这样操作在通过java -jar运行a.jar包时会导致以下错误:

java.lang.IllegalStateException: Unable to open nested entry b.jar. It has been compressed and nested jar files must be stored without compression

错误原因

保存修改后lib下的b.jar时压缩软件对b.jar进行了压缩,导致b.jar包损坏

解决方案

在a.jar包所在文件夹新建BOOT-INF文件夹,再在BOOT-INF下新建lib文件夹;

复制BOOT-INF/lib下的b.jar包到以上新建的lib文件夹下;

修改b.jar包配置文件并保存;

在a.jar所在的文件夹运行jar -uf0 a.jar BOOT-INF/lib/b.jar命令,即可将修改后b.jar无压缩地添加a.jar的指定路径中。

备注

在jar -uf0命令中,

u 指更新现有的归档文件,

f 指定归档文件名 / 为压缩包指定名字,

0 仅存储,不压缩,只是打包;不使用任何 ZIP 压缩

见 jar命令

相关推荐
Arya_aa2 分钟前
jdk动态代理和AOP面向切面编程
spring boot
勤奋的大熊猫6 分钟前
PyCharm 内部打开 .gds 版图文件
pycharm·klayout
Full Stack Developme1 小时前
SpringBoot 整合 Druid 并列出参数清单
java·spring boot·后端
January丶2 小时前
SpringBoot整合ElasticSearch
spring boot
前端双越老师2 小时前
Nest.js 和 Spring Boot 为何如此像?写给前端转 Java 的同学
java·spring boot·全栈
音符犹如代码3 小时前
Arthas classloader + sc 实战:JVM 类加载与手动加载
java·jvm·spring boot
Listen·Rain3 小时前
用AI开发出一个AI
java·人工智能·spring boot·tomcat·intellij-idea·mybatis·visual studio
马优晨7 小时前
Spring Boot + MyBatis + Redis 整合实战 —— 项目源码深度解析
spring boot·redis·mybatis·mybatis + redis·redis实战·spring实战·mybatis实战
Muscleheng14 小时前
SpringBoot 集成 DeepSeek 实现 RAG 文档问答
java·spring boot·ai·springai
suconnect18 小时前
Spring Boot接入企业RAG:文档切分、向量检索、权限过滤和答案溯源
java·spring boot·后端