본문 바로가기
Linux

[Linux 명령어] update-alternatives 손쉬운 자바 버전 변경

by 윾수 2022. 3. 15.

목적 

리눅스에 java를 여러 버전 설치했을 경우 손쉽게 사용하는 버전을 교체하기 위해 사용하는 명령어

[CentOS의 yum 패키지 매니저를 통해 java-1.8, java11 두 개를 설치하였습니다.]

 

자바 버전 확인

$ java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

$ javac -version
javac 1.8.0_312

자바 설치 위치 확인

##JAVA 설치경로 확인
$ which java
/usr/bin/java

$ ls -al /usr/bin/java
/usr/bin/java -> /etc/alternatives/java

$ ls -al /etc/alternatives/java
/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/bin/java

==========

##JAVAC 설치경로 확인
$ which javac
/usr/bin/javac

$ ls -al /usr/bin/javac
/usr/bin/javac -> /etc/alternatives/javac

$ ls -al /etc/alternatives/javac
/etc/alternatives/javac -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/bin/javac

위의 명령어로 보아 java와 javac의 위치는 링크로 연결되어있음을 확인할 수 있다.

/usr/bin/java → /etc/alternatives/java → /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/bin/java

/usr/bin/javac → /etc/alternatives/javac → /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/bin/javac

 

중간단계에 alternatives라는 경로에서 링크로 관리해주는데 우리는 저 링크를 변경하는 쉬운 명령어를 사용할 것!!!!

 

JAVA 버전 변경 [update-alternatives 명령어 사용]

명령어를 통해 JDK 1.8 → JDK 11로 변경하기

## JAVA 버전 변경
$ sudo update-alternatives --config java
2 개의 프로그램이 'java'를 제공합니다.
  선택    명령
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/bin/java)
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-1.el7_9.x86_64/bin/java)

현재 선택[+]을 유지하려면 엔터키를 누르고, 아니면 선택 번호를 입력하십시오: 2
$ java -version
openjdk version "11.0.14" 2022-01-18 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.14+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.14+9-LTS, mixed mode, sharing)

==========

## JAVAC 버전 변경
$ sudo update-alternatives --config javac
2 개의 프로그램이 'javac'를 제공합니다.
  선택    명령
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/bin/javac)
   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.14.0.9-1.el7_9.x86_64/bin/javac)
현재 선택[+]을 유지하려면 엔터키를 누르고, 아니면 선택 번호를 입력하십시오:2
$javac -version
javac 11.0.14

기존 openJDK 1.8 → openJDK 11 로 성공적으로 변경된 것을 확인할 수 있다.