====== jenv ====== * http://www.jenv.be/ * 디렉토리별로 별도의 Java 환경을 지정하고 변경할 수 있게 해줌. * [[java:jenv_windows|JEnv for Windows]] ===== 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|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 <버전번호>