解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
GLPerryHsu4 天前
jar包的快速修改和重新发布
java·jar
暗暗别做白日梦5 天前
Maven 内部 Jar 包私服部署 + 多模块父工程核心配置
java·maven·jar
J2虾虾6 天前
使用Idea当Jar包的反编译
java·intellij-idea·jar
IT枫斗者7 天前
MSE Nacos Prompt 管理:AI Agent 配置的工程化治理实践
网络·人工智能·websocket·网络协议·prompt·jar
周周不一样7 天前
Andorid基础笔记2-jar&反射
笔记·pycharm·jar
蜜獾云14 天前
Maven项目引入本地JAR包的三种正确方式对比
python·maven·jar
二月夜15 天前
修改 JAR 文件并重新打包的完整指南
java·spring boot·jar
crack_comet16 天前
Spring Boot 3.5.11 分离打包(无参数启动+Jar瘦身)完整配置文档
java·spring boot·后端·maven·intellij-idea·jar
帅得不敢出门17 天前
Android Studio同一个工程根据不同芯片平台加载不同的framework.jar及使用不同的代码
android·android studio·jar
工作log18 天前
Spring Boot JAR包加密防反编译:ClassFinal 实战指南
spring boot·后端·jar