Java 21이 2023년 9월에 출시 된지 1년이 되어가고 있고, 여러 신규 기능이 패치 되었기도 하여서 개인 노트북에 JDK 21 설치를 하기로 했다.
whichjdk.com를 보면 크게 2가지 버전의 JDK를 추천한다.
- Amazon Corretto
- AWS의 Amazon Linux 2에서 Java 애플리케이션을 직접 실행하는 경우 최적화된 버전
- Adoptium Eclipse Temurin
- 오픈 소스 소프트웨어에 대한 리소스와 전문 거버넌스 모델을 제공하는 Eclipse 재단 산하의 최상위 프로젝트
- Red Hat, IBM, Microsoft, Azul, iJUG 등 Java 기술에 전략적 관심을 갖고 있는 주요 기업 및 조직으로 구성
- 이전의 AdoptOpenJDK 프로젝트는 Eclipse Adoptium으로 이전됨
현재 여러 팀에서도 대부분 이 중 하나로 선택해서 사용중이다.
온프레미스 기반의 회사에서는 당연하게도 Temurin을 사용중이고, AWS를 사용중인 팀에서도 요즘 같이 컨테이너 환경에서는 특정 클라우드 벤더사의 JDK만 써야하는 제약이 있지 않다보니 Temurin을 사용하는 경우가 많다.
이 글에서도 속한 회사의 인프라 환경에 크게 제약을 받지 않는 오픈소스인 Temurin 21 로 설치를 진행한다.
Adoptium Eclipse Temurin 21 설치
(설치 안되어있다면) cask 를 설치하고
brew install cask
Temurin 21 설치한다.
brew install --cask temurin@21
설치가 완료되면 잘 설치되어있는지 확인해본다.
$ java --version
openjdk 21.0.3 2024-04-16 LTS
OpenJDK Runtime Environment Temurin-21.0.3+9 (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.3+9 (build 21.0.3+9-LTS, mixed mode)
jenv 설치
정상혁님의 "여러 개의 JDK를 설치하고 선택해서 사용하기"을 보면 여러 JDK 버전 관리 도구들에 대한 소개가 나온다.
SDKMAN 의 경우 JDK 설치까지 편하게 사용 가능하지만, 버전 변경에 대해 불편한 점이 많다.
반면 jenv는 JDK 설치는 수동으로 진행해야하지만, 그 이후 버전 관리에 대해서는 다양하고 편리하게 사용할 수 있어 여기서는 jenv 로 진행한다.
$ brew install jenv
설치된 jenv 를 등록하기 위해 ~/.bashrc 또는 ~/.bash_profile 혹은 ~/.zshrc에 아래 내용을 추가한다.
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
아래와 같이 직접 명령어를 수행해서 추가해도 된다.
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc
아래 명령어들도 차례로 수행한다.
Enable the export plugin
$ eval "$(jenv init -)"
$ jenv enable-plugin export
Restart your shell
$ exec $SHELL -l
jenv 설정이 완료되었다면, 위에서 설치한 temurin21 JDK를 jenv에 등록한다.
$ jenv add /Library/Java/JavaVirtualMachines/temurin-21.jdk/Contents/Home
jenv에 잘 등록되었는지 확인해본다.
$ jenv versions
* system (set by /Users/jojoldu/.jenv/version)
21
21.0
21.0.3
temurin64-21.0.3
JAVA_HOME에도 jenv 로 설정된 버전을 인식할 수 있도록 아래 명령어로 글로벌 JDK 버전을 변경한다.
$ jenv global 21.0.3
(이걸 하지 않으면 Gradle 등에서 JAVA_HOME 인식을 하지 못한다.)
Gradle 8 설치
sdkman은 JDK 외에도 여러 JVM 진영의 도구들을 설치, 관리하기 편리한 도구이다.
그래서 Gradle 은 sdkman을 통해 진행한다.
먼저 sdkman 을 설치한다.
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
설치된 sdkman 을 통해 Gradle 최신 버전을 설치한다.
$ sdk install gradle 8.8
잘 설치되었는지 아래 명령어로 gradle 버전을 확인해본다.
$ gradle -v
------------------------------------------------------------
Gradle 8.8
------------------------------------------------------------
Build time: 2024-05-31 21:46:56 UTC
Revision: 4bd1b3d3fc3f31db5a26eecb416a165b8cc36082
Kotlin: 1.9.22
Groovy: 3.0.21
Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM: 21.0.3 (Eclipse Adoptium 21.0.3+9-LTS)
OS: Mac OS X 14.1.2 aarch64