解决 Failed to get nested archive for entry BOOT-INF/lib/xxx.jar

使用zip工具替换jar包的class类文件是没有问题的,但是当换里面的jar包时就会出现Failed to get nested archive for entry BOOT-INF/lib/xxx.jar异常。解决步骤如下:

1、替换旧包

先解压jar包到本地目录

shell 复制代码
jar -xvf test.jar

得到三个文件夹

  • BOOT-INF
  • META-INF
  • org

而需要替换的api-user-0.0.1.jar包就在BOOT-INF\lib目录下。

此时把新的api-user-0.0.1.jar替换掉原来的包。

2、执行打包命令

随后就可以执行打包命令了

shell 复制代码
jar -uvf0 test.jar BOOT-INF/lib/api-user-0.0.1.jar

看到正在添加: BOOT-INF/lib/api-user-0.0.1.jar(输入 = 24051) (输出 = 24051)(存储了 0%)类似的输出则表示打包成功,之后就可以执行java -jar test.jar命令进行验证了。

  • 注意:
    步骤1解压文件非必须,你可以手动创建相同目录,如BOOT-INF\lib,然后把新包放到里面再进行打包,效果一样。
    如果api-user-0.0.1.jartest.jar同一目录,并且你执行jar -uvf0 test.jar api-user-0.0.1.jar命令,压缩后的api-user-0.0.1.jar的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
又是努力搬砖的一年1 天前
springBoot动态加载jar,将类注册到IOC
spring boot·后端·jar
2301_768212152 天前
jmeter所用的mysql的jar包进行下载,可写jdbc协议
mysql·jar
陵易居士3 天前
Java环境下配置环境(jar包)并连接mysql数据库
数据库·mysql·jar
ACGkaka_3 天前
Maven(六)mvn 命令将 jar 包推送到 远程/本地仓库
java·maven·jar
CC大煊4 天前
JDK1.5 java代码打包jar HmacSha256
java·jar
修心光5 天前
windows系统类似于linux的nohup命令后台启动jar服务
linux·windows·jar
宝杰X76 天前
Android Studio获取本地aar,最新依赖jar/aar
android·android studio·jar
suamt6 天前
Windows下Jenkins自动启动jar包
windows·jenkins·jar
moxiaoran57539 天前
IDEA使用Maven Helper查看整个项目的jar冲突
maven·intellij-idea·jar
bestcxx10 天前
(二十四)、在 k8s 中部署自己的 jar 镜像(以 springcloud web 项目为例)
spring cloud·kubernetes·jar