jenv
Install on linux bash
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(jenv init -)"' >> ~/.bashrc
Install on linux with brew
brew install jenv
# activate jenv
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(jenv init -)"' >> ~/.bashrc
sdkman 과의 우선 순위
sdkman 도 Java 버전 지정 기능이 있고, jenv 도 Java 버전 지정 기능이 있는 상태인데,
shell script 가 jenv 가 더 앞에서 활성화 될 경우 sdkman 의 Java 버전 지정이 우선하게 된다.
따라서, 항상 sdkman 보다 jenv 의 shell 활성화(eval “$(jenv init -)”
)가 더 늦게 이루어져야 한다.
2022 년 현재, jenv 가 local 디렉토리 단위의 환경 설정이 sdkman 보다 훨씬 정확하게 잘 작동하고, 세밀한 버전이 아닌 major 버전 기반 지정(Java 17 이면 가장 최근 Java 17이 자동 적용)이 작동해서 더 좋다.
JAVA_HOME 설정
jenv enable-plugin export
JVM 추가
jenv add /usr/lib/jvm/java-6-oracle/
jenv add /usr/lib/jvm/java-7-oracle/
jenv add /usr/lib/jvm/java-8-oracle/
사용
jenv versions # 목록보기
jenv versions --bare # 딱 버전만 보여주고 부가 정보는 제외함. pipe 로 셸 스크립트등을 만들때 편함.
jenv global 1.8 # 1.8 전역 사용 설정
jenv local 1.7 # 현재 디렉토리에서 1.7 사용
# JVM 기본 옵션 지정
jenv global-options "-Xmx512m"
jenv local-options "-Xmx512m"
jenv shell-options "-Xmx512m"
# remove - 실제 JDK를 삭제하는 것은 아니고 jenv 환경에서만 제거함.
jenv remove <버전번호>