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가 확인 가능합니다.