사용자 도구

사이트 도구


java:jenv

jenv

  • 디렉토리별로 별도의 Java 환경을 지정하고 변경할 수 있게 해줌.

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로 Java 버전을 설정해도 JAVA_HOME 설정이 안먹는다.
  • export plugin 을 활성화하면 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 <버전번호>
java/jenv.txt · 마지막으로 수정됨: 2022/04/22 23:34 저자 kwon37xi