Nol*_*uen 21 java gradle java-21
当尝试使用 Java 21 配置项目时,我收到错误:
不支持 Java。您的构建当前配置为使用 Java 21 和 Gradle 8.3。
不幸的是,目前官方文档中没有信息:https ://docs.gradle.org/current/userguide/compatibility.html
执行 Gradle 需要 8 到 20 之间的 Java 版本。尚不支持 Java 21 及更高版本。
Gradle 从哪个版本开始支持 Java 21?
Bas*_*que 17
要获得完整的 Java 21 支持,您可以使用Gradle 8.5。发行说明说:
在此版本中,Gradle 现在完全支持在 Java 21 上编译、测试和运行。
正如其他答案中提到的,Gradle 8.4 支持构建 Java 21 项目。
至于如何做到这一点:
在机器上安装 JDK21 并告诉 Gradle 使用它作为工具链。
在 Gradle 构建文件(build.gradle 或 build.gradle.kts)中:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
Run Code Online (Sandbox Code Playgroud)
Gradle 应该会自动找到您的 JDK21 安装。
安装低于 21 的JDK 版本并使用它来执行 Gradle 任务:
将 JAVA_HOME 变量指向此较低版本的 JDK 安装,或者将属性org.gradle.java.home(gradle.properties) 指向它。如果您使用 IntelliJ,则应该将设置“Gradle JVM”指向此 JDK。
要将 Gradle 升级到 8.4,请从gradle.org下载并手动安装,或者(最好)使用distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip.
说明:默认情况下,Gradle 使用运行它的相同 JDK 来编译源代码。显然,当您需要编译 Java 21 代码但最新的 Gradle 版本尚未在 Java 21 上运行时,这将不起作用。因此,您让 Gradle 在较低版本上运行(您的环境默认值 - java --version
返回的版本,或者 IntelliJ 的Gradle JVM选项中指定的其他 JDK或通过设置 org.gradle.java.home gradle.properties),但您指示它使用 21 JDK 来构建您的项目(编译、javadoc 生成等)。
Edit:尽管Gradle声称相反,但似乎(至少对于简单的项目)Gradle 8.4 已经能够在 Java 21 上运行。
如果遇到问题,请使用上面的步骤,但只需运行gradle build/就足够gradlew build了JDK21 和 Gradle 8.4(因此可以跳过步骤 2)。
从 Gradle 8.5 开始,应该正式支持直接在 JDK21 上运行 Gradle。
| 归档时间: |
|
| 查看次数: |
19288 次 |
| 最近记录: |