解决 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的目录是不正确的,没有起到替换的效果,所以一定要保证被替换包的路径。
相关推荐
灬Change2 天前
maven 发布本地jar包到私库
linux·maven·jar
DavidSoCool2 天前
go执行java -jar 完成DSA私钥解析
java·golang·jar
只吹45°风3 天前
Java-如何将其他地方拉取的jar包导入本地maven环境
java·maven·jar
naruto2274 天前
jar命令解压jar包及更新jar的配置文件
java·jar
張葒兵4 天前
springboot如何将lib和jar分离
spring boot·后端·jar
袭烽5 天前
如何下载AndroidStudio的依赖的 jar,arr文件到本地
android·java·jar
JabamiLight5 天前
Lineageos 22.1(Android 15) 编译隐藏API的 android.jar
android·java·framework·jar·android 15·lineageos 22.1
懒惰的毛毛虫6 天前
docker容器部署jar应用导入文件时候报缺少字体错误解决
docker·容器·jar·x11fontmanager·libfreetype
伏加特遇上西柚7 天前
将jar安装到Maven本地仓库中
python·maven·jar
村东头老张9 天前
将jar制作成docker镜像运行
java·docker·jar