26

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
Elen Mouradian
  • 475
  • 1
  • 8
  • 13
  • 3
    I encountered the same with Java version `openjdk 17.0.1 2021-10-19`. Downgrading to version `openjdk 11.0.13 2021-10-19 LTS` fixed it for me. – mty Dec 28 '21 at 05:45

10 Answers10

30

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
Doan Bui
  • 3,572
  • 25
  • 36
23

Downgrading from open jdk 17 to 11 worked for me.

Manoj
  • 272
  • 1
  • 4
15

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
S34N
  • 7,469
  • 6
  • 34
  • 43
  • I checked https://gradle.org/releases/ and found the latest version, which worked for me. – NBTX Dec 06 '22 at 16:51
9

I resolved upgrading the gradle version with this:

./gradlew wrapper --gradle-version 7.5
3

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.

Pedro
  • 133
  • 4
3

You need to downgrade your java version to JDK 11 version. For Mac OS Users Follow below Steps:

  1. Check the Java version's already installed and see if jdk11 is installed or not, if not, install it first.

/usr/libexec/java_home -V

  1. Open vim ~/.zshrc
  2. Add the below line , note update your JDK name properly below

export JAVA_HOME=/Library/Java/JavaVirtualMachines/<<Your_JDK_11_version>>/Contents/Home

  1. Restart the terminal
  2. Check Java Version

java -version

Shirish Singh
  • 797
  • 7
  • 17
2

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

Bijay Jena
  • 21
  • 4
1

for flutter run this command may be your issue resolve

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
Community
  • 1
  • 1
1

I used jdk 11.0.13 version and it works well.

This is my ~/.bash_profile

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk/Contents/Home
Jayesh
  • 101
  • 6
0

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.