반응형
개인 프로젝트를 진행하면서 JDK 버전을 11로 올려서 작업을 시작했습니다.
그런데 기존 관리하던 코드는 모두 JDK 8을 쓰고 있어 어떻게 각 버전으로 스위칭할지 고민하다가 다음 글을 보았습니다.
advenoh님의 글 : 맥 환경에서 여러 JDK 버전 설치하고 변경하기
advenoh님의 스크립트를 사용하며 자바 버전을 스위칭하다가 $PATH가 쉘 세션 내에서 점점 비대해지는걸 보고 스크립트를 약간 수정하여 사용하고 있습니다.
해당 스크립트를 공유드립니다 :
vi ~/.zshrc
(혹시 bash를 사용하는경우 vi ~/.bash_profile)
# JAVA Version Control
# DEFAULT JDK 11
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
export PATH=$PATH:$JAVA_HOME/bin
javahome_usage() {
echo "javahome - switch to different JDK version"
echo "Usage: javahome [-h] [-v VERSION]"
echo
echo " -h : display usage"
echo " -v : specific JDK version to switch"
echo
echo "Examples: "
echo "># javahome -v 1.8 : switches to JDK8"
echo "># javahome -v 11 : switches to JDK11"
echo "># javahome : display all installed JDK and display current JDK"
}
javahome () {
if [ "$1" = "-h" ] ; then
javahome_usage
fi
if [ "$#" -eq 0 ] ; then
/usr/libexec/java_home -V
fi
if [ "$#" -eq 2 ] && [ "$1" = "-v" ] ; then
PATH=${PATH%%:/Library/Java/JavaVirtualMachines/*.jdk/Contents/Home/bin}
unset JAVA_HOME
export JAVA_HOME=`/usr/libexec/java_home $@`
echo "Setting JAVA_HOME:" $JAVA_HOME
echo
echo "Added JAVA_HOME/bin to PATH"
PATH=$PATH:$JAVA_HOME/bin
echo $PATH
echo
java -version
fi
}
매 javahome 명령 실행 시 마다 JAVAHOME을 초기화하고 PATH에 설정된 변수를 제거합니다.
저는 맥 OS Big Sur에서 zsh를 사용중이며 Zulu OpenJDK 1.8과 11을 스위칭하며 사용중입니다.
혹시 저랑 비슷한 상황이신 분들은 참조해주세요!
반응형
'Tech > Tips' 카테고리의 다른 글
package ... is not in GOROOT 해결법 (0) | 2021.04.17 |
---|---|
Apple Silicon M1 Mac에서 ARM Native homebrew 설치하기 (0) | 2021.02.06 |
Telegraf로 ElasticSearch에 시스템, 도커 모니터링 메트릭 전달 및 Kibana로 시각화하기 (0) | 2020.09.10 |
Docker로 Mariadb, Postgresql, PGAdmin, Redis 구동하기 (0) | 2020.09.06 |
Docker-compose로 ElasticSearch, Kibana 구동하기 (0) | 2020.08.30 |