解决Failed to get nested archive for entry BOOT-INF/lib/xxx.jar问题
作者:左边的天堂
解决BOOT-INF/lib/xxx.jar替换异常需确保路径正确:解压原jar包,替换BOOT-INF/lib目录下的目标jar,再重新打包,手动创建目录结构同样有效,但需严格匹配原路径,避免错误
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包到本地目录
jar -xvf test.jar
得到三个文件夹
BOOT-INFMETA-INForg
而需要替换的api-user-0.0.1.jar包就在BOOT-INF\lib目录下。
此时把新的api-user-0.0.1.jar替换掉原来的包。
2、执行打包命令
随后就可以执行打包命令了
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.jar与test.jar同一目录,并且你执行jar -uvf0 test.jar api-user-0.0.1.jar命令,压缩后的api-user-0.0.1.jar的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- 解决springboot报错Failed to parse multipart servlet request; nested exception is java.io.IOException问题
- 解决报错:java.lang.IllegalStateException: Failed to execute CommandLineRunner问题
- El表达式使用问题javax.el.ELException:Failed to parse the expression的解决方式
- IntelliJ IDEA报错Error:java: Compilation failed: internal java compiler error的解决办法
- 解决Eclipse启动出错:Failed to create the Java Virtual Machine
