OpenJDK – 어떤 버전, 어떤 배포판을 사용해야 할까?

Spring Boot 개발을 하는 중인데, Spring Boot 를 개발하기 위해서는 JDK(Java Development Kit) 설치가 필수적이야. 일단 개발 환경을 구성하기 위해서 구글에서 OpenJDK 를 설치하는 방법을 검색해서 설치했는데, 문득 OpenJDK 배포판과 버전에 대한 선택 기준이 필요하지 않을까? 를 고민해보게 되었어.

나는 남들 하는대로 그냥 따라하기보다는 내가 무언가를 고민해보는걸 좋아하거든.

구글에서 “어떤 OpenJDK 배포판을 선택해야 할지” 라는 검색어로 검색해보니 금방 답이 나오더군.

내가 찾은 가장 유용한 링크는 https://whichjdk.com/ko/ 였어.

자세한 내용은 위 링크에 가면 나와있으니까, 간단하게 요약만 할께.

OpenJDK?

JDK 버전은 현재 8부터 21까지 릴리즈가 되어 있어. 이 중에서 릴리즈타입이 LTS 인 것을 고르는게 좋겠어. LTS 는 Long Term Support 의 이니셜인데, 말 그대로 장기적으로 지원되는 버전인거야.

JDK 가 갑자기 OpenJDK 라는 이름을 달았는지는 이미 알고 있지? JDK 는 자바 가상머신에서 돌아가는 프로그램을 개발하기 위한 개발키트인데, 2010년에 오라클이 썬 마이크로시스템즈를 인수하면서 Java 의 저작권을 소유하게 되었고, 오라클은 JDK 에 대해서 유료화정책을 먹여서 OracleJDK 를 배포하기 시작했어. 이놈의 유료화…

오라클의 JDK 유료화 정책에 대해서 오픈소스로 JDK 를 배포하는게 이른바 OpenJDK 인데, OpenJDK 는 여러가지 배포판이 있어. 누가 관여를 하느냐에 따라서 달라지는건데, 현재까지는 Red Hat, IBM, Microsoft, Azul, iJUG 등의 기업 및 조직이 관여하고 있는 Adoptium Eclipse Temurin OpenJDK 가 강력하게 추천되고 있지.

OpenJDK 설치 및 설정 (리눅스-우분투)

리눅스에서 OpenJDK 를 설치하는 방법에 대해서 알아볼까 해.

우선 Adoptium Eclipse Temurin OpenJDK 사이트에 가서 설치할 JDK 버전을 골라보자.


OS 부터 차례대로 선택해 나가면 선택한 조건에 맞는 JDK 버전의 다운로드 URL 을 보여주거든.

나는 Linux(Ubuntu) 에 설치할 참이니까 Linux 를 골랐고, Version 은 17 – LTS 버전을 선택했어. 이렇게 선택해놓고 아래쪽에 다운로드 .tar.gz 버튼을 클릭하면 바로 다운로드가 되지.


위 작업은 윈도우 PC 에서 수행한거야. 지금 리눅스에서 설치하는 방법을 알아보려고 하는 참이니까 다운로드 링크 주소가 필요해. 파란색 네모친 부분의 click here 의 링크 주소를 copy 하면 아래 주소가 얻어질거야.

https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz

이 주소값을 잘 메모해 놓으라고.

리눅스(우분투 22.04 LTS)에서 위 주소값을 이용해서 다운로드를 받아볼께.

$ cd /tmp
$ sudo wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz


/tmp 디렉토리에 OpenJDK 17 버전을 설치하기 위한 파일이 다운로드가 되었어. 이제 압축을 풀고 jdk 디렉토리로 이동만 시켜주면 돼.

$ sudo tar xzfv OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz


압축이 해제되면 /tmp 디렉토리 아래에 jdk-17.0.10+7 디렉토리가 생성이 되지.

이 디렉토리 전체를 /opt 디렉토리 하위로 옮겨서 JDK 디렉토리로 설정하는 일이 남았어.

$ sudo mv jdk-17.0.10+7 /opt/


이제 마지막으로 jdk 디렉토리를 path 로 걸어주어야 해. 그래야 어디서든지 jdk 의 java 컴파일러를 사용할 수 있게 되지. path 로 걸어주지 않으면 java 컴파일러를 사용할 때 전체 경로를 항상 사용해야 해.


$ vi ~/.bashrc

홈 디렉토리의 .bashrc 파일을 열어서 맨 마지막에 JDK 관련 변수를 설정해주면 돼.

export JAVA_HOME=/opt/jdk-17.0.10+7
export PATH=$PATH:$JAVA_HOME/bin


아래 명령어로 변경된 .bashrc 를 적용하는거야.

$ source ~/.bashrc


이제 어느 디렉토리에서든 java 관련 명령어를 사용할 수 있게 되었어.

그런데, 이 방법은 해당 사용자에 한해서만 가능하도록 설정하는 방법이라서 다른 사용자로 로그인하는 경우에는 동일한 방법으로 재적용해주거나, 전체 경로를 모두 입력해야 하지.


그래서 전역으로 JDK 경로를 설정하는 방법을 알아볼께.

/etc/profile 파일을 열어서 JDK 디렉토리를 path 에 걸어볼께.

$ sudo vi /etc/profile


/etc/profile 파일의 맨 뒤에 앞에서 입력했던 것처럼 JDK 디렉토리에 대한 JAVA_HOME 변수 설정과 PATH 설정 코드를 추가한 다음 저장하면 돼.

그런 다음 변경된 /etc/profile 파일을 적용해보자.

$ source /etc/profile

이제 새로운 계정으로 전환해서 java 명령어 실행이 되는지를 한번 볼께.

$ sudo su -s /bin/bash - ubility
$ pwd
$ java --version


java 에 대한 경로(/opt/jdk-17.0.10+7/bin/java)를 입력하지 않은 상태로도 java –version 이 실행되는 것을 확인할 수가 있어.

개발환경의 JDK 버전과 운영환경의 JDK 버전은 가급적 맞춰주는 것이 예외상황이 만들어지지 않게 하는 방법이겠지?

Leave a Comment