解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
kfyty7252 天前
轻量级 ioc 框架 loveqq,支持接口上传 jar 格式的 starter 启动器并支持热加载其中的 bean
java·jvm·ioc·jar·热加载
沉豆3 天前
Jmeter调用jar包中的方法,并使用返回值当请求参数
java·jmeter·jar
桂?3 天前
使用离线依赖解决Android Studio编译报错(下载不了jar)——笔记
笔记·android studio·jar
Aesopcmc5 天前
idea 启动jar程序并调试
java·intellij-idea·jar
酷爱码11 天前
Java -jar命令运行外部依赖JAR包的深度场景分析与实践指南
java·python·jar
ross14 天前
更新已打包好的 Spring Boot JAR 文件中的 class 文件
spring boot·后端·jar
风行無痕14 天前
ubuntu系统上运行jar程序输出时间时区不对
spring boot·后端·jar
小于村17 天前
pom.xml 文件中配置你项目中的外部 jar 包打包方式
xml·java·jar
当归102418 天前
SpringBoot集成第三方jar的完整指南
spring boot·python·jar
helloliyh18 天前
把 jar 打包成 exe
java·jar