解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
e***89021 小时前
MySQL 8.0版本JDBC驱动Jar包
数据库·mysql·jar
果壳~2 天前
【Java】使用WinSW将SpringBoot Jar包部署为Windows服务
java·spring boot·jar
miss_you12132 天前
Java 项目打包优化:Jar 瘦身
java·开发语言·jar
食指Shaye8 天前
idea突然出现找不到Maven配置的jar
maven·intellij-idea·jar
码云数智-大飞8 天前
优雅解决 IntelliJ IDEA “命令行过长”问题:使用 JAR 清单(Manifest)方式
java·intellij-idea·jar
红烧柯基8 天前
nohup java -jar运行jar包时设置启动参数
java·开发语言·jar
丁劲犇10 天前
老旧CentOS7服务器JVM加载Jar缓慢排查:竟与NTP服务器有关
服务器·jvm·jar·java8·ntp·加载慢
Hui Baby13 天前
java -jar 启动原理
java·pycharm·jar
weixin_5112552113 天前
更新jar内资源和代码
java·jar
Knight_AL13 天前
在 Windows 上安装本地 JAR 到 Maven 仓库
windows·maven·jar