解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
奋豆来袭1 天前
wins中怎么用一个bat文件启动jar包和tomcat等多个服务
jar
栗子~~2 天前
bat脚本- 将jar 包批量安装到 Maven 本地仓库
java·maven·jar
程序员皮皮林3 天前
Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
java·开发语言·jar
鸿儒之观4 天前
hadoop 框架 jar下载
大数据·hadoop·jar
techzhi5 天前
maven scope=provided || optional=true会打包到jar文件中吗?
java·maven·jar
亲爱的非洲野猪14 天前
Spring Boot 与传统 Spring:从 WAR 到可执行 JAR,颠覆性的部署哲学
spring boot·spring·jar
多工坊15 天前
【DataGrip】连接达梦数据库后,能查询数据但是看不到表的几种情况分析,达梦数据库驱动包下载DmJdbcDriver18.jar
java·数据库·jar
我是廖志伟18 天前
【jar包启动,每天生成一个日志文件】
java·jar
诗句藏于尽头20 天前
更改jar素材后打包
java·jar
JH307320 天前
Maven的三种项目打包方式——pom,jar,war的区别
java·maven·jar