Java

Could not determine java version from '11.0.11'. 에 대한 해결 방법

< 내 상황 >

java -version // 11
./gradlew --version // 제목과 똑같은 에러가 발생하며 버전을 확인할 수 없음.

이 경우, Java 버전을 1.8로 낮추면 해결된다.

sudo apt-get install openjdk-8-jre
sudo update-alternatives --config java
java -version // openjdk version "1.8..."

 

하지만 이렇게 한 뒤, ./gradlew clean build를 수행하면 또 에러가 날 수 있다. (왜냐면 나는 났기 때문!😞)

 

Execution failed for task ':compileJava'. 

Could not find tools.jar. Please check that ..

 

그 경우에는 우선 자바가 바라보고 있는 경로를 확인해보고 변경하면 된다.

 

우선 내 경우에는 다음과 같이 설정되어있었다.

[명령] - [결과]로 작성하겠습니다.

[whereis java] - [java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz]
[ls -l /usr/bin/java] - [/usr/bin/java -> /etc/alternatives/java]
[ls -l /etc/alternatives/java] - [/etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java]
[update-alternatives --list javac] - [/usr/lib/jvm/java-11-openjdk-amd64/bin/javac]

결론적으로는 경로가 /usr/bin/jvm/java-8-openjdk-amd64를 보는 것이 아니라, jre를 보고 있었다.

 

export JAVA_HOME=$(dirname $(dirname $(update-alternatives --list javac)))

 

악! 근데 이렇게 했을 때 java-11을 바라보게 된다. 이럴 때엔 그냥 export JAVA_HOME="usr/bin/jvm/java-8-openjdk-amd64"로 설정해주면 된다.

 

혹시 이렇게 했는데도 에러가 난다면 sudo apt-install openjdk-8-jdk를 설치하시길..