解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
Android_酷酷2 天前
windows启动jar指定jdk路径
java·开发语言·jar
漠子凉2 天前
Jar使用MINIFEST.MF打包后出现没有主清单属性
java·jar
weixin_436525074 天前
使用 Grype 检查 .jar 包中的漏洞
java·jar
stormsha4 天前
maven 编译构建可以执行的jar包
java·maven·jar
丘丘用户思思澪4 天前
maven手动安装jar包到本地仓库时遇到there is no POM in this directory
java·maven·jar
牧竹子4 天前
SpringBoot 项目 Jar 包加密,防止反编译
spring boot·后端·jar
天地风雷水火山泽6 天前
二百六十三、Java——IDEA项目打成jar包,然后在Linux中运行
java·intellij-idea·jar
Bug缔造者7 天前
windows下自启springboot项目(jar+nginx)
windows·spring boot·jar
hyssop20197 天前
jmeter依赖jar包找不到类路径
java·jmeter·jar
ღ᭄陽先生꧔ꦿ᭄8 天前
SpringBoot打包部署,打包成jar和war有所不同?
spring boot·后端·jar