Manage Java Versions with JEnv
Experimenting with different versions of Java made easier by a handy tool.
Install
First, install JEnv itself.
brew install jenv
JEnv simply assist in managing Java versions. We have to install various Java versions by ourselves.
brew tap homebrew/cask-versions
brew cask install java11
Put these two lines in ~/.bash_profile
or ~/.zshrc
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
After that, just restart the shell for these changes to be picked up
Add Java versions
Find existing Java path, then use jenv add <path>
. Where <path>
is /Library/Java/JavaVirtualMachines/<version>/Contents/Home
. The correct version should be recognized by the tool
$ ls -l /Library/Java/JavaVirtualMachines
total 0
drwxr-xr-x 3 varokas staff 96 Aug 9 2018 jdk1.8.0_181.jdk
drwxr-xr-x@ 3 varokas staff 96 Jan 18 00:22 openjdk-11.0.2.jdk
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
oracle64-1.8.0.181 added
1.8.0.181 added
1.8 added
$ jenv add /Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
openjdk64-11.0.2 added
11.0.2 added
11.0 added
We can then inspect all recognized version.
$ jenv versions
* system (set by /Users/varokas/.jenv/version)
1.8
1.8.0.181
11.0
11.0.2
openjdk64-11.0.2
Then we can switch between Java versions like so.
$ jenv global 11.0
$ 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)
$ jenv global 1.8
$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
JAVA_HOME
The environments variable usually are not as important as long as javac
can be executed from shell. Regardless, we could set it like so.
jenv enable-plugin export
echo $JAVA_HOME