Prerequisite: HomeBrew
Before we start
Find locations of previously installed Java JDK:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
1.8.0_162, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
Find the location of a specific Java version using -v
:
$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
Install with HomeBrew
- Update HomeBrew.
$ brew update
2. Add the casks tap.
$ brew tap homebrew/cask-versions
3. Install a specific version of the JDK such as java8
, java10
or java
for the current.
$ brew cask install java
Switching versions
Add the following aliases to .bash_profile
.
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
alias java8='export JAVA_HOME=$JAVA_8_HOME'
alias java11='export JAVA_HOME=$JAVA_11_HOME'
# default to Java 11
java11
Reload .bash_profile
for the aliases to take effect.
$ source ~/.bash_profile
Use the alias to change version.
$ java8
$ java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
Full explanation by Jayson Minard: https://stackoverflow.com/a/52524114/5366727