Spring Boot程序配置JDK11编译后无法在JDK11运行求助
问题分析与解决方案
核心根源
你遇到的两个错误本质上是同一个问题:Spring Boot 3.0.0要求最低Java版本为17,但你试图用Java 11运行/编译。第一个错误里的class file version 61.0对应Java 17,而Java 11仅支持到55.0,所以依赖的Spring Boot类无法在Java 11环境加载;第二个编译错误则是因为旧版Maven编译器插件不兼容Java 11的配置。
具体修复步骤
1. 降级Spring Boot版本到兼容Java 11的分支
Spring Boot 3.x系列(包括3.0.0)强制要求Java 17及以上版本。如果要在Java 11环境运行,必须切换到Spring Boot 2.7.x(这是支持Java 11的最新稳定分支)。修改pom.xml中的Spring Boot相关依赖版本:
<!-- 替换spring-boot-autoconfigure版本为2.7.x,比如2.7.17 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> <version>2.7.17</version> </dependency>
如果你的项目用了Spring Boot父工程,也要把父工程版本改成2.7.x:
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.17</version> <relativePath/> </parent>
2. 升级并配置Maven编译器插件
你当前使用的maven-compiler-plugin:3.1版本过于老旧,不支持Java 11的编译标准。升级到至少3.8.1版本,并明确配置Java版本:
<properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <!-- 推荐使用最新兼容Java11的稳定版 --> <configuration> <release>11</release> <!-- 此参数确保生成完全兼容Java11的字节码,比单独配置source/target更可靠 --> </configuration> </plugin> </plugins> </build>
3. 检查IntelliJ的项目级JDK配置
除了系统环境变量,IntelliJ的本地配置也可能覆盖全局设置:
- 打开
File → Project Structure → Project:确认Project SDK为JDK 11,Language Level选择11 - Local variable syntax for lambda parameters - 进入
File → Project Structure → Modules:逐个检查模块的Language Level,确保都设置为11 - 打开
File → Settings → Build, Execution, Deployment → Build Tools → Maven → Runner:将JRE设置为JDK 11 - 检查IntelliJ右下角的SDK选择器,确保当前项目使用的是JDK 11
4. 清理缓存并重新构建
- 执行Maven命令清理并重新构建:
mvn clean install
- 如果IntelliJ仍有缓存问题,执行
File → Invalidate Caches...,选择Invalidate and Restart,清除IDE缓存后重新打开项目。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

