
Ubuntu에서 Java 개발을 할 수 있는 환경을 구성하고 JDK 버전이 여러 개일 경우 버전을 전환하는 방법까지 알아보겠습니다!
다음 명령어를 입력하여 JDK 17과 JDK 11을 설치합니다.
> sudo apt -y install openjdk-17-jdk
> sudo apt -y install openjdk-11-jdk
아래 명령어로 잘 설치가 잘 되었는지 확인할 수 있습니다.
> java -verison
openjdk version "17.0.10" 2024-01-16
OpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-122.04.1)
OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-122.04.1, mixed mode, sharing)
> javac -version
javac 17.0.10
두 가지 JDK 버전을 설치했지만 현재 표시되는 JDK 버전은 처음 설치한 17인데요. 아래 명령어를 입력하면 설치된 모든 버전을 보여줍니다.
> update-alternatives --list java
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
> update-alternatives --list javac
/usr/lib/jvm/java-11-openjdk-amd64/bin/javac
/usr/lib/jvm/java-17-openjdk-amd64/bin/javac
java와javac의 차이
java는 JVM을 작동시켜 Java 프로그램을 실행합니다.
즉, 컴파일되어 만들어진 바이트 코드 파일을 실행합니다.javac는 Java 소스 코드를 컴파일하여 바이트 코드 파일인.class파일로 변환합니다.
.zshrc 파일에 Java의 환경 변수를 추가하면 됩니다.
먼저 .zshrc 파일을 vim 편집기로 열겠습니다.
> vim ~/.zshrc
파일 맨 끝에 아래 문장을 추가하고 저장하면 됩니다.
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")

그리고 아래 명령어를 입력하여 변경된 .zshrc 파일을 업데이트합니다.
> source .zshrc
Java의 환경 변수를 출력했을 때 다음과 같이 표시되면 됩니다.
> echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk-amd64
Ubuntu에 Java를 개발할 수 있는 환경은 구축되었는데요. 아직 의문점이 하나 남아있습니다. 그래서 JDK 버전이 여러 개면 어떻게 전환해야 하는 걸까요?
Ubuntu는 설치된 프로그램들의 버전을 변경하기 위한 방법으로 update-alternatives 명령어를 제공합니다. 아래의 두 명령어로 java와 javac 명령어에 대한 버전을 변경할 수 있습니다.
> sudo update-alternatives --config java
> sudo update-alternatives --config javac
명령어를 입력하면 버전을 선택할 수 있는 목록이 표시되는데요. 원하는 버전을 선택하면 됩니다.

버전을 선택했다면 java와 javac의 버전이 변경되어 있을 것입니다.
> java -version
openjdk version "11.0.22" 2024-01-16
OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1)
OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1, mixed mode, sharing)
> javac -version
javac 11.0.22
버전을 변경한 후에는 환경 변수도 전환한 버전에 맞추기 위해 아래 명령어를 다시 입력하면 됩니다.
> source .zshrc
환경 변수를 표시해보면 바뀌어 있는 것을 확인할 수 있습니다.
> echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-amd64
Ubuntu에 Java 개발 환경을 구성하고 Java의 버전을 전환하는 것까지 알아보았습니다.
긴 글 읽어주셔서 고맙습니다 🥰