You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot运行fat jar报错Unable to open root Jar file问题问询

根因说明

该问题是Spring Boot 2.4.0-SNAPSHOT快照版本的已知缺陷,内嵌Tomcat在解析fat jar内部依赖路径时逻辑异常,额外生成了多余的*字符,导致无法正确定位jar包内的依赖文件。你当前配置中将spring-boot-starter-tomcat设为provided scope,又额外引入了tomcat-embed-jasper依赖,二者的版本匹配问题放大了该缺陷,所以才会出现只有java -jar运行时报错,IDE和mvn spring-boot:run运行正常的情况。

解决方案

  • 方案1(最推荐):将Spring Boot父依赖版本替换为正式稳定版,快照版本身为开发测试版本,存在未修复缺陷属于正常情况,你可以将spring-boot-starter-parent的版本改为2.4.0.RELEASE及以上的正式发布版本,重新打包即可解决该问题。
  • 方案2(临时兼容):如果你暂时需要保留2.4.0-SNAPSHOT版本,直接移除spring-boot-starter-tomcat依赖的<scope>provided</scope>配置即可,你当前项目打包格式为jar,不需要将内嵌Tomcat标记为外部提供,该配置会导致fat jar内的Tomcat相关依赖版本不匹配,触发路径解析错误。
  • 验证方法:修改配置后执行mvn clean install重新打包,再运行java -jar target/myapplication-1.0.jar即可正常启动。

内容的提问来源于stack exchange,提问作者coterobarros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:45:02