首页 > 解决方案 > Gradle 5 和 IntelliJ 2018.3。无法识别的选项:--add-opens 或 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是从哪里来的?如何防止这种情况发生?

标签: javagradleintellij-ideagradlew

解决方案


原因是用户主目录中gradle.properties的文件.gradle夹中的文件。只需删除文件即可使用 IntelliJ 解决此问题。

仍然很高兴知道这是什么原因......

很奇怪的bug!

致谢: IntelliJ IDEA Gradle 同步:将 Gradle 的 Java 主页设置为某些 JDK 时出现问题


推荐阅读