java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector cannot access class com.sun.tools.javac.code.Symbol$

Viewed 14972

I'm trying to build the application with Java SE 11 and Gradle 7.0, and it builds using the IDE however when I try to build it using the terminal I get this error. How can I fix it.

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
8 Answers

Resolved it by recreating the project from existing sources & updating the .gradle-wrapper.properties version to 7.3.2

Location: 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

Downgrading from open jdk 17 to 11 worked for me.

I encountered the same error. To get around it, I ended up setting the JAVA_HOME environment variable before running gradle from the command line, and also added it to my path.

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

openjdk-11 worked fine for me, but you want to make sure your JAVA_HOME environment variable points to an actual location before setting it. This may vary based on your OS.

It took me up to 3 working days and I found a simple solution. Go to android/gradle.properties change org.gradle.jvmargs=-Xmx1536M to

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

I resolved upgrading the gradle version with this:

./gradlew wrapper --gradle-version 7.5

I am having the same issue. When I was running in intellij terminal ./gradlew build war this exception happened.

I saw the problem is terminal java version. In terminal is 17 and my application is running in 11.

I solve my problem creating war file by intellij, but there is some missing environment configuration to fix in my terminal.

I had to upgrade my gradle file to 7.3.1 and add this line in gradle.properties in android directory org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED

The gradle upgrade is required for Java 17 support

for flutter run this command may be your issue resolve

rm -r ~/.pub-cache<br>
rm -r ./pubspec.lock<br>
flutter clean<br>
flutter pub get<br>
flutter pub cache clean<br>
flutter pub cache repair<br>
flutter precache<br>
dart pub upgrade<br>
flutter pub run build_runner build --delete-conflicting-outputs
Related