使用 Oracle JDK 14 时,所有 gradle (6.2.2) 任务都失败并显示 "Could not initialize class org.codehaus.groovy.runtime.InvokerHelper"

When using Oracle JDK 14 all gradle (6.2.2) tasks fail with "Could not initialize class org.codehaus.groovy.runtime.InvokerHelper"

我安装了 JDK 14 并开始使用它。

但是使用 Gradle 6.2.2 的项目无法运行,每次我尝试调用 Gradle 任务时都会出现以下错误:

Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

其他项目,例如 Maven 项目和普通 java 项目可以与 Java 14.

一起工作

重现此错误的一种简单方法是创建一个新文件夹并尝试 运行 init 任务。

例如:

gradle init --type basic

FAILURE: Build failed with an exception.

  • What went wrong: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper

  • 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

BUILD FAILED in 878ms

运行本例使用的PCwindows10。 java 版本是:

java --version

java 14 2020-03-17 Java(TM) SE Runtime Environment (build 14+36-1461)

Java HotSpot(TM) 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)

是否有解决此问题的方法,以便我可以使 Gradle 6.2.2 与 Oracle JDK 14 一起工作?

正如上面的评论和 Gradle 6.2.2. Compatibility 中所指出的,执行 Gradle 6.2.2 需要一个介于 8 和 13 之间的 Java 版本。 Java Gradle 6.2.2.

尚不支持 14 及更高版本

自 Gradle 6.3 版本以来的更新答案:

Gradle6.3,支持JDK14According to the Gradle 6.3 Release notes.

以下解决方案适用:

  • 要继续使用 Gradle 6.2.2:

    1. 安装兼容的 JDK 版本 (8-13)
    2. 修改gradle.properties以使用此版本。 例如,如果 JDK 13 安装在:C:/Program Files/Java/jdk-13.0.2 确保以下行在 gradle.properties 中。

      org.gradle.java.home=C:/Program Files/Java/jdk-13.0.2

  • 继续使用 JDK14.

    1. 安装并使用 Gradle 6.3(或更高版本)

设置系统后,请验证您的 运行 版本是否正确。 例如,当使用 Java 14 和 Gradle 6.3 时,您将得到如下内容:

键入 C:\>gradle --version 以获取 gradle 版本:

C:>gradle --version

Gradle 6.3

Build time: 2020-03-24 19:52:07 UTC Revision:
bacd40b727b0130eeac8855ae3f9fd9a0b207c60

Kotlin: 1.3.70 Groovy: 2.5.10 Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019 JVM: 14 (Oracle Corporation 14+36-1461) OS: Windows 10 10.0 amd64

键入 java --version 以获取 java 版本:

C:>java --version java 14 2020-03-17 Java(TM) SE Runtime Environment (build 14+36-1461) Java HotSpot(TM) 64-Bit Server VM (build 14+36-1461, mixed mode, sharing)

如果您使用 Gradle 包装器,您可以使用以下命令将 gradle 包装器更改为 6.3 版:

gradle wrapper --gradle-version=6.3