티스토리 뷰

Web Development

Multiple Java Version (Mac)

§무명소졸§ 2020. 2. 24. 18:47

jEnv

Mac 에서 여러개의 Java 버전을 관리하고 이용할 수 있는 툴이다. 아마도 jEnv 는 Java Enviorment에 약어일듯 싶다. 뭐 그게 중요한 건 아니고 오늘은 jEnv를 이용해서 여러 버전의 Java를 쉽게 사용하는 법을 알아보겠다.

multiple java version

/usr/libexec/java_home -V 명령어로 현재 설치된 java들을 확인할 수 있다. 현재 Mac에는 1.8, 11, 12가 설치 돼있다.

~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    12, x86_64:	"OpenJDK 12"	/Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
    11.0.2, x86_64:	"OpenJDK 11.0.2"	/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
    1.8.0_172-zulu-8.30.0.1, x86_64:	"Zulu 8"	/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home

 

install jEnv

brew install jenv 명령어로 jEnv를 설치한다. 물론 mac os 패키지 관리자인 homebrew가 설치돼 있어야 한다.

~ % brew install jenv
Updating Homebrew...
==> Auto-updated Homebrew!
Updated Homebrew from 2834a75f1 to cf02ac9d4.
Updated 4 taps (homebrew/core, homebrew/cask, pivotal/tap and caskroom/versions).
==> New Formulae
polynote
==> Updated Formulae
gradle ✔                      binaryen                      devdash                       gitlab-runner                 hmmer                         lazygit                       monetdb                       nfdump                        pivotal/tap/gemfire@9.7       protobuf-c                    shairport-sync                urh
aws-cdk                       consul                        etcd                          glooctl                       ipfs                          libstfl                       n                             ngt                           postgis                       repo                          shellharden                   wasmer
ballerina                     contentful-cli                fluid-synth                   go-bindata                    jenkins                       mk-configure                  netdata                       okteto                        procs                         ruby-build                    sphinx-doc                    weaver
berglas                       crc                           gatsby-cli                    helmfile                      kubespy                       molecule                      newman                        parallel                      proftpd                       sccache                       unbound
==> Deleted Formulae
jpcsp

 

configure jEnv

jenv를 설치하고 실제로 동작하기 위해서는 아래와 같은 명령어를 추가해야한다. (bash 기준)

$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile

 

add jdk path

jenv가 설치됐으면 jenv add 명령어를 이용해서 jdk 설치 패스를 등록한다. 필자같은 경우 11,8은 이미 등록돼 있고 12는 추가했다.

~ % jenv add /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
openjdk64-12 added
12 added
~ % jenv add /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
 openjdk64-11.0.2 already present, skip installation
 11.0.2 already present, skip installation
 11.0 already present, skip installation
~ % jenv add /Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
 zulu64-1.8.0.172 already present, skip installation
 1.8.0.172 already present, skip installation
 1.8 already present, skip installation

 

use

global 명령어로 java global version을 변경할 수 있다.

➜  ~  java -version  #현재 버전 확인
openjdk version "1.8.0_172"
OpenJDK Runtime Environment (Zulu 8.30.0.1-macosx) (build 1.8.0_172-b01)
OpenJDK 64-Bit Server VM (Zulu 8.30.0.1-macosx) (build 25.172-b01, mixed mode)
➜  ~  jenv versions #jenv 에 등록된 java
  system
* 1.8 (set by /Users/mhkim/.jenv/version)
  1.8.0.172
  11.0
  11.0.2
  12
  openjdk64-11.0.2
  openjdk64-12
  zulu64-1.8.0.172
➜  ~  jenv global 12 #global java 설정을 12로 변경
➜  ~  java -version  #java12로 변경 확인
openjdk version "12" 2019-03-19
OpenJDK Runtime Environment (build 12+33)
OpenJDK 64-Bit Server VM (build 12+33, mixed mode, sharing)


local 명령어로 특정 디렉토리 java version을 설정할 수 있다.

➜  ~  mkdir java11proejct
➜  ~  cd java11proejct
➜  java11proejct  jenv local 11.0
➜  java11proejct  java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
➜  java11proejct  cd ..
➜  ~  java -version
openjdk version "12" 2019-03-19
OpenJDK Runtime Environment (build 12+33)
OpenJDK 64-Bit Server VM (build 12+33, mixed mode, sharing)
➜  ~

 

reference

 

'Web Development' 카테고리의 다른 글

OSGI for Java Bundle Programing  (0) 2020.03.16
Runnable Jar (Maven Shade)  (0) 2020.03.12
multiple java version in ubuntu  (0) 2020.02.20
jenkins(ubuntu) + github + Startup #3  (0) 2020.02.19
jenkins(ubuntu) + github + Startup #2  (0) 2020.02.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크