我使用 IntelliJ IDEA Ultimate 版本 2024.1 创建了一个新项目。该版本支持新的 Java 22 (openjdk-22) 版本。但是当我重新加载我的 Gradle 项目时,它显示了这个错误:
Unsupported Gradle JVM.
Your build is currently configured to use Java 22 and Gradle 8.7.
Possible solutions:
- Use Java 21 as Gradle JVM: Open Gradle settings
- Upgrade to Gradle 8.5 and re-sync
还有这个:
FAILURE: Build failed with an exception.
* What went wrong:
BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 66
> Unsupported class file major version 66
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
CONFIGURE FAILED in 69ms
在“项目结构”下,我选择了已安装的 Java 22 SDK。此外,所有模块都是 SDK 默认语言级别。
这些是我的 Gradle 属性:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
这是我的 build.kts:
plugins {
id("java")
}
group = "org.example"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
java {
sourceCompatibility = JavaVersion.VERSION_22
targetCompatibility = JavaVersion.VERSION_22
}
dependencies {
testImplementation(platform("org.junit:junit-bom:5.10.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
}
tasks.test {
useJUnitPlatform()
}
问题不在于 IntelliJ-IDEA 不支持 Java 22。问题在于 Gradle 不能在 Java 22 上运行(它仅支持为 Java 22 构建项目,但最高必须使用 Java 21 运行)。
来自 Gradle 8.7 发行说明:
支持使用 Java 22 构建项目
Gradle 现在支持使用 Java 22 来编译、测试和启动其他 Java 程序。选择语言版本是使用工具链完成的。
您无法使用 Java 22 运行 Gradle 8.7 本身,因为 Groovy 仍然需要支持 JDK 22。但是,未来的版本预计将提供此支持。