欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

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

2025年08月06日 ar
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

使用zip工具替换jar包的class类文件是没有问题的,但是当换里面的jar包时就会出现异常。

failed to get nested archive for entry boot-inf/lib/xxx.jar

解决步骤

1、替换旧包

先解压jar包到本地目录

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、执行打包命令

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

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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。