Skip to content

Instantly share code, notes, and snippets.

@brightzheng100
Created January 12, 2024 09:14
Show Gist options
  • Save brightzheng100/ceeff22870015f49f86041bbb5f179f9 to your computer and use it in GitHub Desktop.
Save brightzheng100/ceeff22870015f49f86041bbb5f179f9 to your computer and use it in GitHub Desktop.
Multiple JDK versions in MacOS

Install whatever versions you need

brew install openjdk@8
brew install openjdk@11
brew install openjdk@17

View what versions are now available

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    17.0.9 (arm64) "Homebrew" - "OpenJDK 17.0.9" /opt/homebrew/Cellar/openjdk@17/17.0.9/libexec/openjdk.jdk/Contents/Home
    11.0.15 (arm64) "Homebrew" - "OpenJDK 11.0.15" /opt/homebrew/Cellar/openjdk@11/11.0.14.1/libexec/openjdk.jdk/Contents/Home
    1.8.361.09 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_311 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home

Enable multi-version mechanism

vi ~/.zshrc
---
export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
export JAVA_11_HOME=$(/usr/libexec/java_home -v11)
export JAVA_17_HOME=$(/usr/libexec/java_home -v17)

alias java8='export JAVA_HOME=$JAVA_8_HOME;export PATH="$JAVA_HOME/bin:$PATH"'
alias java11='export JAVA_HOME=$JAVA_11_HOME;export PATH="$JAVA_HOME/bin:$PATH"'
alias java17='export JAVA_HOME=$JAVA_17_HOME;export PATH="$JAVA_HOME/bin:$PATH"'

#default java11 and use java17 to switch to v17
export JAVA_HOME=$JAVA_11_HOME
export PATH="$JAVA_HOME/bin:$PATH"

Switch when needed

$ java --version
openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment Homebrew (build 11.0.15+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.15+0, mixed mode)

$ java17

$ java --version
openjdk 17.0.9 2023-10-17
OpenJDK Runtime Environment Homebrew (build 17.0.9+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.9+0, mixed mode, sharing)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment