jenv를 이용하면 간단한 명령어로 JDK 버전을 바꿀 수 있다.
필자는 JDK11와 JDK17로 설정해 보겠다.
1. Homebrew로 JDK11과 JDK17을 설치한다.
brew install openjdk@11
brew install openjdk@17
2. jenv 설치를 한다.
brew install jenv
3. jenv 설치가 완료되면 jenv를 쉘에 설정한다.
brew install jenv
# zsh를 사용하는 경우
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc
# bash를 사용하는 경우
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
4. JAVA_HOME 초기화 (필요한 경우)
기존 JAVA_HOME 설정이 jenv와 충돌할 수 있으므로 초기화한다.
unset JAVA_HOME
5. JDK를 jenv에 추가한다.
JDK경로 탐색은 /usr/libexec/java_home -V를 검색한다.
만약 /usr/libexec/java_home -V를 검색했는데 JDK의 모든 목록이 나타나지 않는다면
Homebrew가 JDK를 /Library/Java/JavaVirtualMachines/가 아닌 /opt/homebrew/opt/ 및 /opt/homebrew/Cellar/ 디렉터리에 설치하기 때문이다.
java_home 명령어는 기본적으로 /Library/Java/JavaVirtualMachines/ 경로를 탐색한다.
따라서, Homebrew가 설치한 JDK를 /Library/Java/JavaVirtualMachines/ 디렉토리에 심볼릭 링크로 연결하면 된다.
# JDK 11을 심볼릭 링크로 연결
sudo ln -sfn /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
# JDK 17을 심볼릭 링크로 연결
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
이렇게 하면 java_home 명령어가 Homebrew를 통해 설치된 JDK를 인식할 수 있다.
# jenv에 JDK 11 추가
jenv add /opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home
# jenv에 JDK 17 추가
jenv add /opt/homebrew/Cellar/openjdk@17/17.0.12/libexec/openjdk.jdk/Contents/Home
6. jenv 리프레시를 한다.
jenv rehash
7. JDK 버전을 전환해 본다.
jenv global 11.0
java -version
jenv global 17.0
java -version
참고 : jenv는 자체적으로 JAVA_HOME을 관리하므로 만약 위와 같이 변경이 되지 않는다면 JAVA_HOME을 수동으로 설정해야 한다.
1) JAVA_HOME 초기화
unset JAVA_HOME
2) ~/.zshrc 파일에 jEnv 설정 추가
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
3) 설정 적용
source ~/.zshrc
이제 jenv를 사용해서 쉽게 JDK 버전을 관리할 수 있다.
'기타 > Setting' 카테고리의 다른 글
macOS 키보드 반복 속도 설정: KeyRepeat와 InitialKeyRepeat (1) | 2024.09.03 |
---|