Gradle - Note: Compiling and testing on Java 21 will be supported as part of Gradle 8.4 using [toolchains](https://docs.gradle.org/current/userguide/toolchains.html).

## The fix

Full support for running Gradle on Java 21 landed in Gradle 8.5, so the clean fix is to upgrade to 8.5 or newer. On Gradle 8.4 (and earlier), you cannot run Gradle itself on JDK 21 because the Kotlin DSL needs Kotlin 1.9.20's JVM-target support. The confirmed workaround: run Gradle on JDK 20 and compile/test your code against JDK 21 using Java toolchains:

java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(21))
    }
}

Users confirmed JDK 21 builds and tests work this way on 8.4 (with Kotlin 1.9.20 for Kotlin projects), and Groovy DSL projects could already do this on 8.3. In IntelliJ, make sure the Gradle JVM is set to JDK 20 rather than inheriting the project SDK.

Thread: gh:gradle/gradle#25574