Spring Boot应用因Unsupported class file major version 61无法启动求助
问题根源
你遇到的核心错误是java.lang.IllegalArgumentException: Unsupported class file major version 61——这个错误说明Spring框架的ASM解析器无法识别Java17生成的class文件(class文件的major version 61对应Java17)。
你对Spring Boot 2.3.x的版本兼容理解有误:官方文档里的"支持Java8、11、14及更高版本",这里的"更高版本"指的是Java14的小版本更新,而非Java17这种跨大版本的升级。Spring Boot 2.3.1基于Spring Framework 5.2.x,而Spring 5.2.x的ASM组件最高只支持到Java14,完全不兼容Java17。
解决方法
方案1:降级Java版本到兼容范围
把本地Java版本切换为Spring Boot 2.3.1明确支持的Java8、11或14:
- 在IntelliJ中打开
File > Project Structure,在Project Settings > Project里将Project SDK和Project language level设置为Java8/11/14; - 同时检查
File > Settings > Build, Execution, Deployment > Build Tools > Gradle,确保Gradle使用的JVM也是对应版本。
方案2:升级Spring Boot以支持Java17
如果想继续使用Java17,需要将Spring Boot版本升级到2.6.0及以上(2.6.x是首个正式支持Java17的Spring Boot分支),修改你的build.gradle:
plugins { id 'java' id 'org.springframework.boot' version '2.6.13.RELEASE' // 推荐使用该分支的最新稳定版 id 'io.spring.dependency-management' version '1.0.15.RELEASE' }
升级后,Spring Boot会自动管理所有兼容的依赖版本,不需要手动调整其他依赖项。
收尾操作
修改完成后,执行gradle clean build清理旧的编译文件,避免残留的Java17 class文件干扰运行。
内容的提问来源于stack exchange,提问作者pingusophie
相关产品推荐
相关产品推荐

