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

标签 java windows gradle java-14

我安装了JDK 14并开始使用它。
但是,使用Gradle 6.2.2的项目无法工作,并且每次我尝试调用Gradle Task时,都会出现以下错误:

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


运行此示例的PC使用Windows 10。
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版本。 Gradle 6.2.2尚不支持Java 14和更高版本。

自Gradle 6.3发布以来更新的答案:

Gradle 6.3,支持JDK 14 According to the Gradle 6.3 Release notes

适用以下解决方案:

  • 要继续使用Gradle 6.2.2,请执行以下操作:
  • 安装兼容的JDK版本(8-13)
  • 修改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。
  • 安装并使用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

    关于java - 使用Oracle JDK 14时,所有gradle(6.2.2)任务都将失败,并带有 "Could not initialize class org.codehaus.groovy.runtime.InvokerHelper",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60742006/

    相关文章:

    gradle - 如何在Grails 3中获取和设置应​​用程序名称

    java - 尝试导入 2 个 jar 文件时,Android Studio 出现 DuplicateFileException

    java - AAR 传递依赖 Google 位置服务

    如果不使用大括号和 if,Java 代码编译错误

    java - 如何在jasper报告中显示ArrayList的值

    r - RStudio 中的 install.keras() 因 http 连接错误而失败

    c# - 当用户在 richtextbox 中输入时,我可以使用 WPF 进行自动单词替换吗

    java - 在 Java 中使用 BufferedWriter 写入文件

    java - 如何从列表中计算玩家的排名

    c - 使用 mingw 的 gcc,SDL : "undefined reference to ` SDL_Init'"What does the error message mean and how do I resolve it?