解压修改jar包后运行报错:Unable to open nested entry ‘BOOT-INF/lib/**.jar‘. It has been compressed

背景
打部署jar包后,使用Bandizip或者winwar解压工具,修改了里面的配置文件,和lib里面的一个引用包的配置文件,报这个错:

Unable to open nested entry 'BOOT-INF/lib/**.jar'. It has been compressed

错误原因
这是说这个jar包访问失败,错误原因是,使用winrar或者7zip解压工具,点开后修改lib内的第二层jar包,修改后重新保存的时候,对lib内的jar包进行了重复压缩,所以访问不到。

解决方案
windows:
Windows有2种解决方案:解决方案一
 

 使用Bandizip 编辑-添加文件

 使用WinRAR打开,将刚刚修改,被重复压缩报错的那个lib内的jar包挪出来,使用 WinRAR的功能添加-》文件-》不压缩直接存储的文件,填写lib包的本地路径,把lib包重新添加进去,

解决方案二
将jar包文件后缀手动改成rar,解压,然后重新压缩成rar,将结尾后缀改成jar,重新运行。

linux:
linux的思路和windows的方案2一样,都是解压之后重新打包。

linux解压:

jar -xf xxx.jar
解压jar包之后,找到里面的lib包,找到那个有问题的jar包,把那个jar包再解压一次,然后再压缩回去。

linux重新压缩:

jar -cfM0 ./
后面的 ./ 是要压缩的文件夹路径
 

猜你喜欢

转载自blog.csdn.net/u010919402/article/details/127774845