Gradle 5 和 IntelliJ 2018.3。无法识别的选项:--add-opens 或 java.base.java.lang=ALL-UNNAMED

Gradle 5 and IntelliJ 2018.3. Unrecognized option: --add-opens or java.base.java.lang=ALL-UNNAMED

我有一组由 Gradle 4.10.3 构建的复杂项目。我可以从命令行构建它们,但我也可以将它们导入 IntelliJ 2018.3 Ultimate 而不会出现重大问题。

当我将 Gradle 升级到 5.1.1 时,项目仍在控制台中正常构建,但是我无法再在 IntelliJ 中导入(或刷新)项目:(

配置部分没有问题,但无法在 IntelliJ 中启动守护进程。如果我在 IntelliJ 项目设置中将 Gradle JVM 设置为 Java 8,我会得到一个错误:

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Unrecognized option: --add-opens

如果我在 IntelliJ 项目设置中将 Gradle JVM 设置为 Java 11,我会得到一个不同的错误:

Error: Could not find or load main class java.base.java.lang=ALL-UNNAMED
Caused by: java.lang.ClassNotFoundException: java.base.java.lang=ALL-UNNAMED

只要我执行 gradlew wrapper --gradle-version=4.10.3(将包装器改回 4.10.3),IntelliJ 插件就会再次正常工作。

如果我将 gradle idea 任务(idea gradle 插件)添加到脚本,它也可以在 5.1.1 版本的控制台中正常执行。

从用户文件夹中删除 .idea 设置没有帮助。清洁进口也无济于事。 IntelliJ 中与 Gradle 相关的所有可能设置(包括所有与包装器相关的设置)都会被尝试。没有任何帮助:(

这个问题看起来很微不足道,但是几天以来我都找不到解决方案:(那些--add-opens是从哪里来的?如何防止这种情况发生?

原因是用户家 .gradle 文件夹中的 gradle.properties 文件。只需删除文件即可解决 IntelliJ 的这个问题。

不过如果知道这是什么原因就好了...

非常奇怪的错误!

学分:

对我有用的是将 IDE 指向您自己的 JAVA_HOME 而不是 IDE 中包含的 IDE (不过,Android Studio,所以 YMMV ).

当您安装了两个版本的 JVM 时,将出现此错误,在将一个版本切换到另一个版本时,我们可能会出现此错误。

解决方案(IntelliJ IDE): 单击您的项目 -> 打开模块设置 -> 转到项目设置 -> 项目语言级别 -> 更改为 8 - Lambdas,类型注释等

更改后,重新构建您的应用程序。