Ubuntu JDK 17 (OpenJDK) 설치, 삭제

Ubuntu에서 Open JDK(Java Development Kit) 17을 설치, 삭제하는 방법에 대해서 알아보겠습니다.

저는 Ubuntu 20.04에서 설치하였는데, 22.04 버전도 크게 차이는 없습니다.

1. 터미널 명령어로 OpenJDK 17 설치

apt 명령어로 Repository와 패키지를 업데이트합니다. 최신 버전으로 업데이트하여 잠재적인 버전 충돌 문제를 예방할 수 있습니다.

$ sudo apt update && sudo apt upgrade

다음 명령어로 OpenJDK 17을 설치합니다.

$ sudo apt install openjdk-17-jdk

설치가 완료되면, 아래 명령어로 현재 자바 버전이 17로 설정되어있는지 확인할 수 있습니다.

$ java --version
openjdk 17.0.6 2023-01-17
OpenJDK Runtime Environment (build 17.0.6+10-Ubuntu-0ubuntu120.04.1)
OpenJDK 64-Bit Server VM (build 17.0.6+10-Ubuntu-0ubuntu120.04.1, mixed mode, sharing)

2. 설치 파일을 다운로드하여 직접 설치

apt가 동작안하거나, 네트워크 문제로 apt로 설치가 어려운 경우 직접 설치 파일 다운로드하여 설치할 수 있습니다.

JDK 다운로드 페이지에서 JDK 17 버전 파일을 다운로드합니다.

또는, 아래와 같이 wget 명령어로 openjdk-17.0.2 버전을 다운로드 받을 수 있습니다.

$ wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz

gz 파일을 다운로드 받으면, 아래 명령어로 압축을 풀어줍니다.

$ tar -xvf openjdk-17.*

압축을 풀고 디렉토리를 확인하면 아래와 같이 보입니다.

$ ls
jdk-17.0.2  openjdk-17.0.2_linux-x64_bin.tar.gz

여기서 jdk-17.0.2 디렉토리를 /usr/local/openjdk-17 경로로 복사합니다. 복사된 경로에 자바 파일들이 보입니다.

$ sudo cp -r jdk-17.0.2/ /usr/local/openjdk-17

$ ls /usr/local/openjdk-17
bin  conf  include  jmods  legal  lib  release

vim ~/.bashrc 명령어 등으로, .bashrc 파일에 다음과 같이 설정하여 Java Path를 추가합니다.

export JAVA_HOME=/usr/local/openjdk-17
export PATH=$JAVA_HOME/bin:$PATH

터미널을 새로 실행하거나, 아래 명령어를 입력하여 현재 터미널에 변경된 PATH를 적용합니다.

$ source ~/.bashrc

이제 자바 버전을 확인하면 설치된 것을 확인할 수 있습니다.

$ java --version
openjdk 17.0.6 2023-01-17
OpenJDK Runtime Environment (build 17.0.6+10-Ubuntu-0ubuntu120.04.1)
OpenJDK 64-Bit Server VM (build 17.0.6+10-Ubuntu-0ubuntu120.04.1, mixed mode, sharing)

3. OpenJDK 삭제

다음 명령어로 설치된 OpenJDK를 삭제할 수 있습니다.

$ sudo apt-get purge openjdk*

또는, 아래와 같이 특정 JDK 버전만 삭제할 수 있습니다.

$ sudo apt remove openjdk-17-jre openjdk-17-jdk --purge

삭제 후 Java 버전을 확인하면 삭제된 것을 볼 수 있습니다.

$ java --version
bash: /usr/bin/java: No such file or directory

4. Java 버전 관리 (Alternatives)

.bashrcPATH에 Java 경로를 추가하여 관리해도 되지만, 저는 Alternatives라는 툴을 이용하여 다양한 자바 버전을 비교적 간편하게 관리할 수 있습니다.

간단히 동작 원리를 소개하면, 시스템은 특정 경로를 자바 설치 경로로 인식하고 있고, 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에 등록된 것을 확인할 수 있고, 여기서 변경하고 싶은 자바 버전을 선택할 수 있습니다.

js@js:~/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을 선택하였는데요, 자바 버전을 확인해보면 11 버전으로 변경되었습니다. alternative가 설치 위치를 변경하였기 때문입니다.

$ 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)
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha