프로젝트 진행하면서 여러 Java 버전을 사용할 필요가 생겼습니다.
혼자 진행하던 프로젝트는Java 11
을 사용하고 있었고,
최근 진행할 프로젝트에서Spring 3.0.0
을 사용해보기 위해서Java 17
이상 버전을 사용해야할 필요가 생겼습니다.
따라서 Mac에서 여러 자바 버전을 이용할 수 있는jenv
의 사용법에 대해 문서화해서 정리해보려합니다.
jenv는
Python
진영의pyenv
Node
진영의nvm
등과 유사한 툴입니다.
개발환경 :
Mac Apple Silicon Chip
(M1
)
homebrew가 설치되어 있다고 가정하고 작성하겠습니다.
우선 homebrew
를 이용해서 jenv
를 설치합니다.
$ brew install jenv
설치가 완료되면 PATH 설정을 진행합니다.
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc
PATH 설정을 진행하고 변경사항을 바로 반영합니다.
$ source ~/.zshrc
jenv의 Export Plugin 설정을 해줍니다.
$ jenv enable-plugin export
jenv가 정상적으로 설치됐는지 확인해봅시다!
$ jenv
>
jenv 0.5.5
Usage: jenv <command> [<args>]
Some useful jenv commands are:
commands List all available jenv commands
local Set or show the local application-specific Java version
global Set or show the global Java version
shell Set or show the shell-specific Java version
rehash Rehash jenv shims (run this after installing executables)
version Show the current Java version and its origin
versions List all Java versions available to jenv
which Display the full path to an executable
whence List all Java versions that contain the given executable
add Add JDK into jenv. A alias name will be generated by parsing "java -version"
See `jenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/jenv/jenv/blob/master/README.md
위와 같이 jenv
를 입력했을 때 버전정보와 함께 명령어가 출력되면 정상적으로 설치된 것입니다 :)!
특정 Java 버전의 추가 설치가 필요하다면 brew를 통해 설치를 진행합니다.
간단한 예시로 openJDK 11, openJDK 17 버전을 설치해보겠습니다.
homebrew 저장소에서 설치가능한 JDK 검색
$ brew search jdk
>
openjdk openjdk@11 openjdk@17 openjdk@8 jd mdk cdk
11, 17 버전을 선택해서 설치합니다.
$ brew install openjdk@11
$ brew install openjdk@17
(참고) openjdk@8 설치 시 오류
openjdk@8: The x86_64 architecture is required for this software.
Error: openjdk@8: An unsatisfied requirement failed this build.
openJDK 8 을 설치 시 Apple Silicon Chip에서는 오류가 발생합니다.
따라서 Apple Silcon Chip을 사용하는 개발 환경에서는
azul 과 같은 다른 JDK를 이용해서 설치해야 합니다.
이후 관리하기 편하게 Symbolic Link 작업을 해줍니다.
$ sudo ln -sfn /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
$ sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
Symbolic Link 작업 까지 진행을 완료했다면 아래 명령어로 Symbolic Link 가 잘 연결됐는지 확인합니다.
$ ls /Library/Java/JavaVirtualMachines
>
openjdk-11.jdk openjdk-17.jdk
아래의 명령어를 통해 설치한 JDK를 jenv에 등록할 수 있습니다.
$ jenv add /Library/Java/JavaVirtualMachines/[JDK version name]/Contents/Home/
예시로 방금 따끈따끈하게 설치한 JDK들을 등록해보겠습니다.
$ jenv add /Library/Java/JavaVirtualMachines/openjdk-11.jdk/Contents/Home/
$ jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/
설치된 Java 버전 확인
$ jenv versions
>
* system (set by /Users/geun/.jenv/version)
11.0
11.0.17
17.0
17.0.5
openjdk64-11.0.17
openjdk64-17.0.5
원하는 버전을 전역으로 사용하기
{}
부분에 활성화를 원하는 Java 버전을 입력합니다
$ jenv global {JAVA_VERSION}
특정 위치에서만 사용하기
$ jenv local {JAVA_VERSION}