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

Spring Boot从2.7.2升级到3.0.2后启动失败(Exit Code 1)求助

Spring Boot 3.0.2启动报错(Exit Code 1)排查方案

核心排查方向

1. 彻底检查代码中的Jakarta替换情况

  • 全局搜索项目中的javax.字符串(IntelliJ用Ctrl+Shift+F,输入javax\.),确保所有包引用都替换为jakarta.,比如javax.servlet→jakarta.servlet、javax.persistence→jakarta.persistence
  • 检查自定义注解、继承类、异常处理类等细节,比如自定义@ControllerAdvice中引用的异常类是否还依赖javax
  • 确认主类中没有遗漏的import语句,尤其是自动生成的import可能残留javax引用

2. 校验第三方依赖兼容性

  • Spring Boot 3仅支持Jakarta EE 9+,必须确保所有第三方依赖(如MyBatis、Redis客户端、日志扩展等)升级到兼容版本:
    • MyBatis需升级至3.5.10+,MyBatis-Spring需3.0.0+
    • Spring Data Redis需3.0.0+
  • 用mvn dependency:tree(Maven)或./gradlew dependencies(Gradle)生成依赖树,找出仍依赖javax.*的库,要么升级该库,要么手动排除冲突的javax依赖

3. 检查配置文件中的类引用

  • 查看application.yml/application.properties中指定的自定义类(如转换器、监听器),确保这些类已完成javax到jakarta的替换
  • 检查logback.xml等配置文件,确认没有引用javax相关的过滤器或类

4. 重置IDE构建环境

  • 手动清除IntelliJ缓存:File -> Invalidate Caches...,勾选Clear file system cache and local history后重启IDE
  • 确认项目SDK为Java 17+(Spring Boot 3强制要求),且所有模块的SDK配置与项目SDK保持一致
  • 检查构建工具配置:Maven的pom.xml中java.version设为17;Gradle的build.gradle中sourceCompatibility和targetCompatibility设为17

5. 获取详细错误日志

  • 仅Process finished with exit code 1无法定位问题,需查看启动时的异常栈:
    • 在IntelliJ的Console标签中向上翻找Exception或Error开头的内容
    • 若日志被截断,在启动配置中添加参数-Dlogging.level.root=DEBUG,强制输出详细日志
  • 常见异常如NoClassDefFoundError(遗漏javax类替换)、IllegalStateException(依赖冲突),可直接根据异常信息定位问题

6. 校验Servlet容器配置

  • 若为WAR包部署,确保使用Tomcat 10+(Tomcat 9及以下仅支持javax)
  • 若为内嵌容器,确认spring-boot-starter-web自动引入Tomcat 10,无手动引入的旧版Tomcat依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:10:01