개요
터미널에서 jar 파일을 빌드하던 도중 다음과 같은 에러를 만났다.
$ ./gradlew bootJar
> Task :compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> java.lang.IllegalAccessError: class org.gradle.internal.compiler.java.ClassNameCollector (in unnamed module @0x3bb7d1cd) 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 @0x3bb7d1cd
해결
검색해보니 JDK 버전 문제 같은데.. IDE상에선 JDK가 제대로 설정되어 있었다... (인텔리제이에선 별도의 JDK가 돈다고 한다)
싸한 마음에 터미널에서 JDK 버전을 확인해보니.. JDK 버전이 프로젝트와 달랐다.
JDK11을 로컬에 설치하고 환경변수로 잡아줘야 한다.
1. 설치
$ brew install zulu-jdk11
2. 환경변수 설정 (M1 기준)
$ vi ~/.zshrc
export JAVA_HOME=`/usr/libexec/java_home -v 11`
export PATH=$PATH:$JAVA_HOME/bin
source ~/.zshrc
다시 버전을 체크해보면 정상적으로 버전이 낮아진 것을 확인할 수 있다.
다시 빌드해보면 성공이다. 참고로 기존 터미널은 닫고 새로운 터미널에서 실행시켜야 한다.