java.lang.IllegalAccessError: 类org.gradle.internal.compiler.java.ClassNameCollector 无法访问类com.sun.tools.javac.code.Symbol$

问题描述 投票:0回答:10

我正在尝试使用 Java SE 11 和 Gradle 7.0 构建应用程序,并且它是使用 IDE 构建的,但是当我尝试使用终端构建它时,我收到了这个错误。我该如何解决它。

java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x1d7a8227) 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 @0x1d7a8227
java gradle java-11
10个回答
17
投票

从 open jdk 17 降级到 11 对我有用。


15
投票

通过从现有源重新创建项目并将

.gradle-wrapper.properties
版本更新到 7.3.2

解决了这个问题

地点:

gradle/wrapper/gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

13
投票

我花了最多 3 个工作日,找到了一个简单的解决方案。前往

android/gradle.properties
org.gradle.jvmargs=-Xmx1536M
改成

org.gradle.jvmargs=-Xmx1536M --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED

6
投票

我决定用这个升级 gradle 版本:

./gradlew wrapper --gradle-version 7.5

3
投票

我遇到了同样的错误。为了解决这个问题,我最终在从命令行运行 gradle 之前设置了 JAVA_HOME 环境变量,并将其添加到我的路径中。

export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home 
export PATH=$JAVA_HOME/bin:$PATH

openjdk-11 对我来说工作得很好,但你想确保你的 JAVA_HOME 环境变量在设置之前指向一个实际位置。这可能因您的操作系统而异。


1
投票

我必须将我的 gradle 文件升级到 7.3.1 并在 android 目录的 gradle.properties 中添加这一行

org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED

Java 17 支持需要 gradle 升级


1
投票

你需要将你的java版本降级到JDK 11版本。 对于 Mac OS 用户,请按照以下步骤操作:

  1. 查看已经安装的Java版本,看有没有安装jdk11,没有的话先安装

/usr/libexec/java_home -V

  1. 打开 vim ~/.zshrc
  2. 添加以下行,注意在下面正确更新您的 JDK 名称

出口 JAVA_HOME=/Library/Java/JavaVirtualMachines/<>/Contents/Home

  1. 重启终端
  2. 检查 Java 版本

java-版本


0
投票

我有同样的问题。 当我在 intellij 终端运行时 ./gradlew build war 这个异常发生了。

我看到问题是终端java版本。在终端中是 17,我的应用程序在 11 中运行。

我通过 intellij 解决了创建 war 文件的问题,但是我的终端中缺少一些需要修复的环境配置。


0
投票

我用的是jdk 11.0.13版本,效果不错

这是我的 ~/.bash_profile

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk/Contents/Home

0
投票

对于 flutter 运行这个命令可能是你的问题解决

rm -r ~/.pub-cache
rm -r ./pubspec.lock
flutter clean
flutter pub get
flutter pub cache clean
flutter pub cache repair
flutter precache
dart pub upgrade
flutter pub run build_runner build --delete-conflicting-outputs
© www.soinside.com 2019 - 2024. All rights reserved.