apt 패키지 인덱스 정보를 아래 명령어로 업데이트하여 자바 리스트를 갱신합니다.

sudo apt update

원하는 자바 버전을 설치합니다. 이 글에선 8버전과 16버전을 선택하였습니다.

sudo apt install openjdk-17-jdk

bashrc에 JAVA_HOME을 추가합니다.

  • export 명령어에 대한 설명은 이 글 맨 아래에 추가하였습니다.
  • 많은 application(Apache Hadoop 등)은 자바 위치를 찾기위해 JAVA_HOME 변수를 참조합니다. 이에 다른 어플리케이션에서 쉽게 사용할 수 있도록, JAVA_HOME을 설정합니다.
sudo vi ~/.bashrc

맨 아래 추가 한다.

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

바로 적용 방법

source ~/.bashrc
# 현재 자바 버전 확인
java -version

# 설치된 자바 버전 리스트 확인
update-alternatives --list java

자바 버전 변경 하고자 한다면 아래 명령어를 사용 합니다.

sudo update-alternatives --config java
sudo update-alternatives --config javac

bashrc에 export 명령어가 하는 일

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

1. readlink -f /usr/bin/java 는 해당 심볼릭 링크가 가르키는 최종 directory나 file의 경로를 가지고 옵니다(위 그림 참조)

2. sed "s:bin/java::" 는 문자열의 마지막 bin/java 를 제거해줍니다.

3. export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") 를 통해 JAVA_HOME이 update-alternatives가 관리하는 directory로 동적으로 변경하게 해줍니다.

 

update-alternatives에 대한 추가 설명

  • /usr/bin/java 는 우분투에서 자바 명령어를 실행하기 위해 자바 설치시 자동으로 추가된 심볼릭 링크이며, /etc/alternatives/java 를 가르키고 있습니다.
  • /etc/alternatives/java  update-alternatives 에서 관리 중이며, 실제로 설치된 자바 디렉토리를 가르킵니다. sudo update-alternatives --config java 명령어를 통해 자바 디렉토리를 변경 가능합니다.
  • 링크를 정리하자면 /usr/bin/java  /etc/alternatives/java  actual java directory 의 형태를 가지고 있습니다. 아래 readlink 명령어를 통해 보이는 link가 확인 가능합니다.
Posted by 블로그하는프로그래머
,