首页 > 其他分享 >jar包内替换依赖jar后无法启动,错误日志:It has been compressed and nested jar files must be stored without compressio

jar包内替换依赖jar后无法启动,错误日志:It has been compressed and nested jar files must be stored without compressio

时间:2024-10-14 09:52:24浏览次数:3  
标签:files java 包内 boot jar springframework loader org

jar包内替换依赖jar后无法启动,错误日志:It has been compressed and nested jar files must be stored without compression.

ruoyi、springboot、java、jar、libs、压缩

背景

某服务jar包足足90MB有余,远程传输太慢,目前在改动的是其中的某子jar(项目内部依赖,另一个jar)。
之前有单传class文件的经验,这次想单独传输子jar,节约传输等待时间,不成想出问题了。

问题描述

压缩软件打开运行jar,找到libs目录,复制依赖jar粘贴到压缩包内,关闭压缩软件,发现启动失败,查看日志发现:

Exception in thread "main" java.lang.IllegalStateException: Failed to get nested archive for entry BOOT-INF/lib/ruoyi-common-3.8.5.jar
	at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:108)
	at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:86)
	at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:70)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:49)
	at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.io.IOException: Unable to open nested jar file 'BOOT-INF/lib/ruoyi-common-3.8.5.jar'
	at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:256)
	at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:241)
	at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:103)
	... 4 more
Caused by: java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/ruoyi-common-3.8.5.jar'. It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file
	at org.springframework.boot.loader.jar.JarFile.createJarFileFromFileEntry(JarFile.java:284)
	at org.springframework.boot.loader.jar.JarFile.createJarFileFromEntry(JarFile.java:264)
	at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:252)
	... 6 more

原因分析

一看就是压缩软件导致的问题,本来以为就是不能改动这个jar包的,直到搜到一篇博客

其实是这个压缩软件不行,放入jar文件的时候会对该文件进行二次压缩,只要不让它压缩就好了。
但是先前服务器用的好压软件设置以后还是不能正常使用,换用winrar就可以了。

解决方案

  1. 从远程机winrar安装目录压缩一份winrar,放到服务器中
  2. 用其他工具解压压缩包,记住解压目录
  3. 右击jar包》打开方式》从磁盘查找winrar
  4. 关闭winrar窗口,双击jar重新打开
  5. 复制依赖jar,在rar中打开目标路径
  6. 粘贴,在弹出的确认框中,选择文件选项卡
  7. 在第三行“不压缩直接存储的文件”中的最后输入一个空格,再输入*.jar
  8. 点击确定,在目标目录中找到对应依赖jar,确认大小压缩后大小两项一致
  9. 运行jar包

声明:本文使用八爪鱼rpa工具从gitee自动搬运本人原创(或摘录,会备注出处)博客,如版式错乱请评论私信,如情况紧急或久未回复请致邮 [email protected] 并备注原委;引用本人笔记的链接正常情况下均可访问,如打不开请查看该链接末尾的笔记标题(右击链接文本,点击 复制链接地址,在文本编辑工具粘贴查看,也可在搜索框粘贴后直接编辑然后搜索),在本人博客手动搜索该标题即可;如遇任何问题,或有更佳方案,欢迎与我沟通!

标签:files,java,包内,boot,jar,springframework,loader,org
From: https://blog.csdn.net/qq_41623592/article/details/142907578

相关文章

  • jar包内替换依赖jar后无法启动,错误日志:It has been compressed and nested jar files
    jar包内替换依赖jar后无法启动,错误日志:Ithasbeencompressedandnestedjarfilesmustbestoredwithoutcompression.ruoyi、springboot、java、jar、libs、压缩背景某服务jar包足足90MB有余,远程传输太慢,目前在改动的是其中的某子jar(项目内部依赖,另一个jar)。之前......
  • com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:jar:unknown was n
    com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:jar:unknownwasnotfoundinhttp://maven.aliyun.com/nexus/content/repositories/central/duringapreviousattempt.Thisfailurewascachedinthelocalrepositoryandresolutionisnotreatte......
  • 解决jar文件不显示图标问题(配置环境变量仍不显示)
    配置环境变量后不显示Java图标,右键选择打开方式仍不管用,使用以下方法1.右键jar包,点击属性2.点击更改3.划到底端,点击电脑上选择应用4.找到JDK文件中的bin目录中的java.exe文件打开,最后点击是设置默认值以及确定就可以啦小白一枚,如果对大家有用的话给个赞......
  • idea数据库图形化窗口连接数据库报错:Driver class ‘com.mysql.cj.jdbc.Driver‘ not
    报错信息在idea中数据库图形化窗口中,创建下图数据库连接点击测试连接后,发生报错:Driverclass'com.mysql.cj.jdbc.Driver'notfoundNodriverfilesprovided.报错界面:原因出现此错误的原因通常是数据库驱动程序尚未下载或未正确配置到IDEA中。解决方案......
  • maven-jar包管理
    覆盖更新导致的问题背景快速接入sentinel-starter的包。团队80多个服务已经接入<dependency><artifactId>yxt-sentinel-spring-boot-starter</artifactId><groupId>com.yxt</groupId><version>1.0.0</version>......
  • SBB Jar 文件
    SBBJar文件1.什么是SBBJar文件?SBB(ServiceBuildingBlock)Jar文件是用于打包一个或多个SBB的标准格式,广泛应用于JAINSLEE(JavaIntegratedNetworksSLEE)环境。SBBJar文件包含了所有必要的类文件、描述符和配置,便于部署和管理服务组件。2.SBBJar文件的结构......
  • springboot-网站开发-linux服务器部署jar格式图片存档路径问题
    springboot-网站开发-linux服务器部署jar格式图片存档路径问题!近期在部署自己的网站源码,使用的是jar格式的编码格式。发布到远程服务器后,发现客户捐款的证书图片存在异常。经过排查代码,找到了原因。下面分享给大家。1:首先,在linux服务器内部,存档图片,文件等资源的时候,本地java......
  • jarvisoj_level2_x64 1 writeup and blog
    Hereifinishthejarvisoj_level2_x641challengeinbuuctfandhereissomewriteup......
  • [1067] Add comments for files in Windows
    CreateashortcutofthefilePressandholdthe[Alt]keyLeftclickmouseandDragtheselectedfolders/itemstoa"freespace"andreleaseMousebuttonnowyouhavecreatedshortcutsOpenthepropertiesofthefileshortcut,thencanaddt......
  • 【SpringBoot安全】SpringBoot Jar 包加密防止反编译实战
    一、proguard-maven-plugin二、classfinal-maven-plugin三、实战原创醉鱼醉鱼Java今天给大家分享一个SpringBoot程序Jar包加密的方式,通过代码加密可以实现无法反编译。应用场景就是当需要把公司的产品部署到友方公司或者其他公司时,可以防止客户直接反编译出来源码......