解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
Azure++11 小时前
Windows配置jar、redis、nginx开机自启
windows·redis·jar
陈老师还在写代码11 小时前
springboot 打包出来的 jar 包的名字是在哪儿决定的
spring boot·后端·jar
命运之光1 天前
杀死后台运行的jar程序,并重新运行jar包
java·pycharm·jar
ac.char1 天前
编辑 JAR 包内嵌套的 TXT 文件(Vim 操作)
java·pycharm·vim·jar
命运之光1 天前
让 Jar 程序在云服务器上持续后台运行,不受终端界面关闭的影响
java·服务器·jar
似水流年 光阴已逝2 天前
从Jar包到K8s上线:全流程拆解+高可用实战
java·kubernetes·jar
鱼蛋-Felix2 天前
Unity jar更新不生效怎么解决
unity·游戏引擎·jar
带刺的坐椅3 天前
Solon (可替换 SpringBoot)集成 Docker 实战:30分钟搞定轻量级应用容器化部署
java·docker·jar·springboot·solon
eguid_17 天前
【开源项目分享】JNSM1.2.0,支持批量管理的jar包安装成Windows服务可视化工具,基于Java实现的支持批量管理已经安装服务的可视化工具
java·开源·jar·1024程序员节·windows服务·jar包安装成服务·exe安装成服务
千里马-horse11 天前
fastddsgen.jar 简介
java·jar·fast dds·fastddsgen