解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
LINgZone25 天前
Maven多模块依赖管理与私有JAR包策略
java·maven·jar
相顾若初见6 天前
RuoYi后端jar镜像制作
java·jar
evans在进步9 天前
Spring Boot 核心机制详解:可执行 JAR、CORS、静态资源与配置绑定
spring boot·后端·jar
EXI-小洲14 天前
MacOS 上使用 IntelliJ IDEA 指定 Main 函数并打包为 JAR 文件
macos·intellij-idea·jar
骇客野人16 天前
Docker Compose 部署多个独立 Jar 服务完整实操步骤
docker·容器·jar
不老刘20 天前
【Java入门】Java服务部署方式全景对比:从java -jar到K8s
java·kubernetes·jar
带刺的坐椅25 天前
跳出 Fatjar 的束缚:Solon 插件的体外扩展(E-Spi)与热插拔(H-Spi)
java·jar·solon·plugin·fatjar
happymagic25 天前
java spring boot做的jar包程序,如何实现自动运行启动
java·运维·服务器·spring boot·jar
Circ.1 个月前
IDEA 引入 nx JAR:原目录可用,复制后失效的原因与解决
pycharm·intellij-idea·jar
次次皮1 个月前
Linux 下通过 XShell 手动更新 Tomcat 应用并重启
前端·tomcat·jar