我安装了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。
适用以下解决方案:
例如,如果JDK 13安装在以下位置:C:/Program Files/Java/jdk-13.0.2
确保以下行在
gradle.properties
中。org.gradle.java.home=C:/Program Files/Java/jdk-13.0.2
设置系统后,请确认您正在运行正确的版本。
例如,当使用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:
bacd40b727b0130eeac8855ae3f9fd9a0b207c60Kotlin: 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/