更新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命令

相关推荐
屹奕15 小时前
Arthas工具快速使用
spring boot·arthas
陈果然DeepVersion16 小时前
Java大厂面试真题:Spring Boot微服务+Kafka消息队列+AIGC场景实战问答全解析
spring boot·redis·微服务·kafka·消息队列·aigc·java面试
程序猿ZhangSir16 小时前
Spring Boot 项目实现邮件推送功能 (以QQ邮箱为例)
java·数据库·spring boot
JosieBook17 小时前
【SpringBoot】30 核心功能 - 单元测试 - JUnit5 单元测试简介与常用注解实战详解
spring boot·后端·单元测试
韩立学长17 小时前
【开题答辩实录分享】以《植物病虫害在线答疑小程序的设计与实现》为例进行答辩实录分享
spring boot·小程序·vue
玛卡巴卡0117 小时前
Maven 从入门到实战:搞定依赖管理与 Spring Boot 项目构建
java·spring boot·maven
جيون داد ناالام ميづ18 小时前
Spring Boot 核心原理(一):基础认知篇
java·spring boot·后端
夏之小星星19 小时前
Springboot结合Vue实现分页功能
vue.js·spring boot·后端
韩立学长19 小时前
【开题答辩实录分享】以《自动售货机刷脸支付系统的设计与实现》为例进行答辩实录分享
vue.js·spring boot·后端
ljh_learn_from_base21 小时前
【spring boot 使用apache poi 生成和处理word 文档】
java·spring boot·word·apache