我正在尝试更新rest-xxxx.jar
中的jar,这个休息jar基本上是一个SpringBoot Jar,当你解压缩时它的文件夹结构为BOOT-INF/lib/<dependencies.jars>
。
现在我想在这个rest-xxxx.jar
中替换一个依赖jar,所以我使用了命令:
jar uf rest-xxxx.jar BOOT-INF/lib/new-version-jar-same-name.jar
我在启动过程中遇到错误:
线程“main”中的异常java.lang.IllegalStateException:无法打开嵌套条目'BOOT-INF / lib / new-version-jar-same-name.jar'。它已被压缩,嵌套的jar文件必须在没有压缩的情况下存储。请检查用于创建可执行jar文件的机制
我注意到jar命令有一个0
选项来避免压缩,所以我做了:
jar u0f rest-xxxx.jar BOOT-INF/lib/new-version-jar-same-name.jar
但后来我遇到了类似的压缩问题,如下所示:
线程“main”中的异常java.lang.IllegalStateException:无法打开嵌套条目'BOOT-INF / lib / new-version-jar-same-name.jar / META-INF / MANIFEST.MF'。它已被压缩,嵌套的jar文件必须在没有压缩的情况下存储。请检查用于创建可执行jar文件的机制
当我需要替换给定springboot jar中的依赖项jar时,我该怎么办?
请注意:我理解最佳做法是从更新的pom.xml构建,我们的限制是我们目前无法获得正确的版本源代码,因此我们正在尝试修补现有的springboot jar而不是重建它。
答案 0 :(得分:0)
使用jar命令解压jar包,替换压缩包外的jar包,进行压缩。