반응형

개요

아래의 글은 Open JDK 17과 Open JDK 11가 이미 설치된 우분투 환경에서,

기본으로 설정된 JDK 버전을 변경하는 방법을 서술한 것이다.

 

보통 먼저 설치된 JDK(가 기본으로 설정이 되어있을텐데, 새로 설치한 다른 버전의 JDK로 변경하려고 한다.

상황

Open JDK 17이 이미 설치된 Ubuntu에서, Open JDK 11을 추가로 설치하고, 기본 Java version을 JDK 11로 변경하려고 한다. 

update-alternatives --config 명령어를 이용할 예정

 

절차

1. Open JDK 17를 먼저 설치하고

# apt install openjdk-17-jdk

 

2. 현재 버전을 확인해본다.

# java -version
openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu118.04)
OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu118.04, mixed mode, sharing)

 

3. 그 다음, Open JDK 11을 설치한다.

# apt install openjdk-11-jdk

 

4. 우리가 기대한 건 JDK 11로 버전이 바뀌냐는 건데, 바뀌지 않고 이전 버전 (JDK 17)로 되어 있다.

우리가 직접 JDK 11로 바꾸는 작업이 필요하다.

# java -version
openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu118.04)
OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu118.04, mixed mode, sharing)

 

5. 현재, 설치된 Java의 버전들을 확인해본다.

# update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java

 

6. 이제 "update-alternatives --config" 명령어를 통해서, 기본으로 설정된 JAVA를 변경해보자.

이때, JDK 11과 맞는 Selection 번호를 입력하자. (아래의 예시에선 1이다. 노란색 음영 표시 하였다.)

# update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).


  Selection    Path                                         Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java   1111      manual mode
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/java   1711      manual mode


Press <enter> to keep the current choice[*], or type selection number: 
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/java to provide /usr/bin/java (java) in manual mode

 

 

**TMI

javac : .java 파일을 bytecode로 컴파일하는 놈. .class파일을 생성함.

java : javac 명령어로 컴파일한 .class를 실행시키는 놈

 

7. javac (java complier)도 버전을 바꾸도록 하자.

# update-alternatives --config javac
There are 2 choices for the alternative javac (providing /usr/bin/javac).


  Selection    Path                                          Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-17-openjdk-amd64/bin/javac   1711      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/javac   1111      manual mode
  2            /usr/lib/jvm/java-17-openjdk-amd64/bin/javac   1711      manual mode


Press <enter> to keep the current choice[*], or type selection number: 
update-alternatives: using /usr/lib/jvm/java-11-openjdk-amd64/bin/javac to provide /usr/bin/javac (javac) in manual mode

 

 

8. 실제로 자바 버전이 바뀌었는지 확인해보자.

# java --version
openjdk 11.0.17 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu218.04, mixed mode, sharing)

우리가 원하는 목표인 JDK 11로 변경이 되었다.

 

추가적으로,

구체적으로 /etc/alternatives/java 파일 (우분투 OS에서 java를 가리키는 파일)이 어디를 가리키는지 보자.

# ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Feb 25 13:06 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java

기대했던 Open JDK 11을 가리키는 걸 확인했다!

 

참고한/유용한 자료

Ubuntu 20.04 자바 JDK 설치 및 버전 관리

 

 

 

 

시간을 절약했으면 아래의 좋아요 부탁드립니다!

 

 

반응형