解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
只在空想家2 天前
SpringBoot JAR 启动原理
java·spring boot·后端·jar
java之迷5 天前
jenkins使用Send build artifacts over SSH发布jar包目录配置
ssh·jenkins·jar
种棵二叉树5 天前
Idea 查找引用jar包依赖来源的Maven pom坐标
maven·intellij-idea·jar
188_djh7 天前
# 终端执行 java -jar example.jar 时(example.jar为项目jar包)报错:“没有主清单属性” 的解决方法
java·pycharm·jar·cmd·没有主清单属性·java -jar
默心7 天前
centos把jar包配置成服务并设置开机自启
linux·centos·jar
SuperherRo9 天前
Web开发-JavaEE应用&SpringBoot栈&SnakeYaml反序列化链&JAR&WAR&构建打包
前端·java-ee·jar·反序列化·war·snakeyaml
坎布里奇9 天前
java -jar命令运行 jar包时如何运行外部依赖jar包
java·pycharm·jar
新时代丘鸣山10 天前
idea Maven 打包SpringBoot可执行的jar包
maven·intellij-idea·jar
DN金猿10 天前
Jenkins的流水线执行shell脚本执行jar命令后项目未启动未输出日志问题处理
servlet·jenkins·jar
BillKu10 天前
服务器多JAR程序运行与管理指南
运维·服务器·jar