개요
여러 Java 프로젝트를 하나의 머신(PC)에서 개발하다보면, 각각의 프로젝트에서 사용하는 Java 버전에 따라 개발 환경을 구축해야할 경우가 있습니다.
이때, 매번 Java를 지우고 해당 프로젝트에 필요한 Java 버전을 설치할 수는 없습니다. 이번 블로그 포스트에서는 macOS
에서 jEnv
를 사용하여 하나의 머신에서 다양한 Java 버전을 설치하고 관리하는 방법에 대해서 알아보도록 하겠습니다.
jEnv 설치
다음 명령어를 사용하여 jEnv
를 설치합니다.
brew install jenv
그런 다음, 다음 명령어를 실행하여 export
플러그인과 maven
플러그인을 활성화 시킵니다.
jenv enable-plugin export
jenv enable-plugin maven
또한, 다음 명령어를 실행하여 jEnv
가 관리하는 Java 버전을 사용하도록 설정합니다.
echo 'export alias java=$HOME/.jenv/shims/java' >> ~/.zshrc`
Java 버전 리스트
다음 명령어를 실행하여 설치 가능한 Java 버전을 확인합니다.
brew search openjdk
그럼 다음과 같이 설치 가능한 Java의 버전 리스트를 확인할 수 있습니다.
==> Formulae
openjdk ✔ openjdk@11 ✔ openjdk@17 ✔ openjdk@8 openj9 openvdb
==> Casks
adoptopenjdk adoptopenjdk/openjdk/adoptopenjdk14
adoptopenjdk/openjdk/adoptopenjdk-jre adoptopenjdk/openjdk/adoptopenjdk14-jre
...
OpenJDK 설치
이번 블로그 포스트에서는 OpenJDK
의 11
과 17
버전을 설치해 보도록 하겠습니다. 다음 명령어를 실행하여 OpenJDK 11
버전을 설치합니다.
brew install openjdk@11
설치가 완료되면 다음 명령어를 사용하여 설치한 JDK
를 jEnv
에 등록합니다.
sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
echo 'export PATH="/usr/local/opt/openjdk@11/bin:$PATH"' >> ~/.zshrc
export CPPFLAGS="-I/usr/local/opt/openjdk@11/include"
jenv add /usr/local/Cellar/openjdk@11/11.0.19/libexec/openjdk.jdk/Contents/Home
동일한 방법으로 OpenJDK 17
버전을 설치하고 jEnv
에 등록합니다.
brew install openjdk@17
sudo ln -sfn /usr/local/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
echo 'export PATH="/usr/local/opt/openjdk@17/bin:$PATH"' >> ~/.zshrc
export CPPFLAGS="-I/usr/local/opt/openjdk@17/include"
jenv add /usr/local/Cellar/openjdk@17/17.0.7/libexec/openjdk.jdk/Contents/Home
jenv add /usr/local/Cellar/openjdk/20.0.1/libexec/openjdk.jdk/Contents/Home
jenv versions
설치가 완료되었다면, 다음 명령어를 실행하여 설치된 사용 가능한 Java 버전을 확인합니다.
jenv versions
그럼 다음과 같이 방금 설치한 OpenJDK 11
과 OpenJDK 17
을 확인할 수 있습니다.
* system (set by JENV_VERSION environment variable)
11.0
11.0.19
openjdk64-11.0.19
openjdk64-17.0.7
jenv version
다음 명령어를 실행하면 jEnv
로 설정된 현재 Java 버전을 확인할 수 있습니다.
jenv version
그럼 다음과 같이 현재 jEnv
로 선택된 Java 버전을 확인할 수 있습니다.
system (set by JENV_VERSION environment variable)
실제 Java 버전을 확인하기 위해서는 다음 명령어를 실행합니다.
java --version
그럼 다음과 같이 실제 사용중인 Java 버전을 확인할 수 있습니다.
openjdk 20.0.1 2023-04-18
OpenJDK Runtime Environment Homebrew (build 20.0.1)
OpenJDK 64-Bit Server VM Homebrew (build 20.0.1, mixed mode, sharing)
설치한 Java 버전 사용하기
이제 jEnv
로 Java 버전을 변경하는 방법에 대해서 알아봅시다. 다음 명령어를 실행하면 OpenJDK 17
을 전역적으로 사용할 수 있습니다.
jenv global openjdk64-17.0.7
다음 명령어를 사용하면 현재 프로젝트에만 적용할 수 있습니다.
jenv local openjdk64-17.0.7
이 명령어는 .java-version
파일을 생성하고 개발 환경에 jEnv
가 활성화되어 있는 경우, 자동으로 해당 버전을 사용하도록 변경해 줍니다.
다음 명령어를 사용하면 현재 shell
에서만 해당 버전을 사용할 수 있습니다.
jenv shell openjdk64-17.0.7
.java-version 파일
앞서 jenv local
명령어를 실행하면 자동으로 .java-version
파일이 생성되는 것을 확인할 수 있었습니다. 이를 통해, jEnv
를 사용하는 개발 환경에서는 자동으로 Java
의 버전을 변경해 줍니다.
그러므로 이 .java-version
파일을 사용하면 해당 프로젝트를 실행하기 위해 필요한 Java의 버전을 공유할 수 있습니다. 만약, 현재 프로젝트의 .java-version
파일이 없는 경우, .java-version
파일을 만들고 다음과 같이 해당 프로젝트에서 필요로 하는 Java의 버전을 작성합니다.
openjdk64-17.0.7
완료
이것으로 jEnv
를 사용하여 동일한 머신에 다양한 Java 버전을 사용하는 방법에 대해서 알아보았습니다. 만약, 여러분이 다양한 Java 버전의 개발 환경이 필요한 경우 jEnv
를 사용하여 버전 관리를 해보시길 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.