SpringBoot执行bootRun时出现:compileJava任务失败,无效源版本18
解决Spring Boot执行bootRun时的compileJava错误(invalid source release: 18)
执行bootRun命令时触发:compileJava任务失败,报错信息为invalid source release: 18,你的Gradle配置如下:
plugins { id 'org.springframework.boot' version '2.6.9' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.loginapp' version = '0.0.1-SNAPSHOT' sourceCompatibility = '18' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
错误原因
- 本地未安装JDK 18,或Gradle未调用JDK 18进行编译
- Spring Boot 2.6.9版本不支持JDK 18(该版本最高兼容JDK 17)
解决方案
方案1:修改Gradle配置为兼容的JDK版本
将sourceCompatibility(建议同时添加targetCompatibility)改为Spring Boot 2.6.9支持的版本(如JDK 8、11、17),推荐使用JDK 17:
plugins { id 'org.springframework.boot' version '2.6.9' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.loginapp' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' targetCompatibility = '17' // 保证编译目标与源码版本一致 repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
方案2:配置Gradle使用对应JDK(若坚持用JDK18)
- 下载安装JDK 18
- 在项目根目录创建
gradle.properties文件,指定Gradle使用的JDK路径:
org.gradle.java.home=/path/to/your/jdk18
(替换为实际路径,Windows示例:C:\Program Files\Java\jdk-18,macOS/Linux示例:/Library/Java/JavaVirtualMachines/jdk-18.jdk/Contents/Home)
方案3:检查IDE的JDK配置
如果使用IDE(如IntelliJ IDEA、Eclipse),需确认:
- 项目SDK配置为目标JDK版本
- IDE的Gradle运行时JDK设置与项目配置一致
内容的提问来源于stack exchange,提问作者sabari
相关产品推荐
相关产品推荐

