首页 > 其他分享 >spring boot替换jar包中引用的jar包(Unable to open nested entry 'BOOT-INF/lib/**.jar'. It has been c

spring boot替换jar包中引用的jar包(Unable to open nested entry 'BOOT-INF/lib/**.jar'. It has been c

时间:2022-12-02 10:55:15浏览次数:40  
标签:包中 archive boot BOOT jar spring JarFileArchive 替换

场景

springboot项目,使用打jar包方式部署时,准备替换包中依赖时(不想重新打包),方法是使用压缩软件打开,直接复制替换掉相应依赖jar包,结果启动时报错

Exception in thread "main" java.lang.IllegalStateException: Failed to get nested archive for entry BOOT-INF/lib/seata-spring-autoconfigure-core-1.5.2.1.jar
        at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:108)
        at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:86)

静态配置文件直接替换一般是支持的,但是jar不能直接替换,相对简单的方法是使用jar命令重新打包

解决方法

解压

jar -xvf .\xx.jar

替换引用jar,重新打包

jar -cfM0 xx.jar ./

之后可以重新执行启动了

标签:包中,archive,boot,BOOT,jar,spring,JarFileArchive,替换
From: https://www.cnblogs.com/zjfjava/p/16943736.html

相关文章