解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
invicinble15 小时前
jar包在执行的时候需要关注的细节(提供一个解构jvm问题的视角)
java·jvm·jar
不惑_1 天前
在 Docker 中运行 Java JAR 包实战教程
java·docker·jar
Han.miracle3 天前
Spring Boot 项目从入门到排障:核心结构、依赖管理与启动全解析
java·jar
未来之窗软件服务5 天前
幽冥大陆(四十九)PHP打造Java的Jar实践——东方仙盟筑基期
java·php·jar·仙盟创梦ide·东方仙盟·东方仙盟sdk·东方仙盟一体化
BD_Marathon6 天前
【JavaWeb】Servlet_jar包导入和Content-Type问题
java·servlet·jar
silence2507 天前
Maven Central 上传(发布)JAR 包流程
java·maven·jar
奈何不吃鱼8 天前
【安装配置教程】在linux部署java项目
java·linux·intellij-idea·jar
hellotutu8 天前
IntelliJ IDEA 中引入自定义 JAR 包
java·bash·intellij-idea·jar
小学鸡!9 天前
部署jar包时指定配置文件
java·python·jar
醇氧10 天前
没有Maven私服引入本地jar文件
java·maven·jar