Ubuntu 20.04에 OpenJDK 11을 설치하는 방법을 소개합니다.
apt로 OpenJDK 설치
먼저 다음과 같이 apt를 업데이트합니다.
$ sudo apt-get update && sudo apt-get upgrade
그리고 다음과 같이 openjdk-11-jdk를 설치합니다.
$ sudo apt-get install openjdk-11-jdk
설치가 완료되면 다음과 같이 설치가 되었는지 확인할 수 있습니다.
$ java -version
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
$ javac -version
javac 11.0.9.1
만약 OpenJRE만 설치하고 싶다면 다음과 같이 설치하시면 됩니다.
$ sudo apt-get install openjdk-11-jre
환경 설정
JAVA_HOME의 시스템 변수 설정이 필요하다면 다음과 같이 ~/.bashrc 파일에 아래 내용을 추가합니다.
$ vim ~/.bashrc
# ~/.bashrc
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
export PATH=$PATH:$JAVA_HOME/bin
다음 명령어로 변경한 설정을 현재 실행된 쉘에 적용할 수 있습니다. 또는 새로운 터미널 창을 실행시키면 됩니다.
$ source ~/.bashrc
다음과 같이 JAVA_HOME이 설정되었는지 확인할 수 있습니다.
$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64
직접 설치 (manually install)
JDK Homepage에서 OpenJdk 11 실행 파일을 다운로드받습니다. 파일은 tar.gz로 압축되어있고 다음 명령어로 압축을 풀어야 합니다.
$ tar -xvf openjdk-11_linux-x64_bin.tar.gz
jdk-11/
....
환경설정
java 명령어를 입력하였을 때 실행파일이 실행되도록 연결하면 됩니다.
저의 경우 /usr/lib/jvm/에 Java 실행 파일들이 모여 있습니다. 관리하기 편하게, jdk-11 폴더를 java-11-openjdk-amd64라는 이름으로 변경하고 이곳에 넣어줍니다.
$ sudo cp -r jdk-11 /usr/lib/jvm/java-11-openjdk-amd64
이제 PATH에 OpenJdk 11의 경로를 추가하시고 사용하시면 됩니다.
Java 버전 관리 (Alternatives)
PATH에 직접 등록하여도 되지만, 저는 Alternatives라는 툴을 이용하여 OpenJdk11를 관리하려고 합니다. Alternatives를 사용하면 원하는 자바의 버전을 쉽게 변경할 수 있습니다.
Alternatives를 잘 모르시면 Ubuntu에서 Python 버전을 변경하는 방법을 참고하세요.
Alternatives의 원리와 사용하는 방법에 대해서 간단히 정리되어있습니다.
저는 다음과 같이 /usr/bin/java를 alternative로 java를 설정한 상태입니다.
$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1101 auto mode
1 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
다음과 같이 OpenJDK 11을 Alternatives에 추가할 수 있습니다.
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1
다음 명령어를 입력하시면 OpenJDK 11이 Alternatives에 등록된 것을 볼 수 있고 원하는 버전을 선택하시면 됩니다.
mjs@mjs:~/Desktop$ sudo update-alternatives --config java
There are 4 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1 auto mode
1 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1101 manual mode
3 /usr/lib/jvm/java-9-openjdk-amd64/bin/java 1101 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
저는 OpenJDK 11을 선택하였고, 다음과 같이 변경된 것을 확인할 수 있습니다.
$ java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
OpenJDK 삭제
다음 명령어로 설치된 OpenJDK를 삭제할 수 있습니다.
$ sudo apt-get purge openjdk*
다음과 같이 삭제된 것을 확인할 수 있습니다.
$ java --version
bash: /usr/bin/java: No such file or directory