【问题标题】:Execution failed for task ':app:compileJava' with ./gradlew run使用 ./gradlew 运行任务 ':app:compileJava' 执行失败
【发布时间】:2021-07-13 04:46:53
【问题描述】:

当我尝试在我的 gradle 项目中使用“./gradlew run”时,我收到了这个错误:

* What went wrong:
Execution failed for task ':app:compileJava'.
> java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x1fa4cfc5) cannot access class com.sun.tools.javac.code.Symbol$TypeSymbol (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.code to unnamed module @0x1fa4cfc5

我尝试了多个不同的项目,但仍然无法正常工作。我相信这与 gradle 期待不同版本的 Java 有关,因为我使用的是 java 16,当我检查“gradle -v”时它显示“JVM:15.0.2”。我不确定如何解决这个问题,或者这是否是问题所在。任何帮助将不胜感激!

【问题讨论】:

    标签: java gradle path system-variable


    【解决方案1】:

    原来我的 Path 系统变量中有多个 java 路径。我删除了除正确的之外的所有变量,然后添加了一个 JAVA_HOME 系统变量,其值为 JDK 的正确路径(C:\Program Files\Java\jdk-“version”)。

    【讨论】:

      【解决方案2】:

      使用 JDK 17 我也收到了类似的错误消息

      java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x1fa4cfc5) cannot access class com.sun.tools.javac.code.Symbol$TypeSymbol (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.code to unnamed module @0x1fa4cfc5
      

      我能找到的唯一解决方案是创建一个环境变量

      JDK_JAVA_OPTIONS='--add-exports jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED'
      

      【讨论】:

        猜你喜欢
        • 2017-01-04
        • 1970-01-01
        • 2020-07-16
        • 2018-11-14
        • 1970-01-01
        • 1970-01-01
        • 2020-03-07
        • 2020-03-05
        • 1970-01-01
        相关资源
        最近更新 更多