Switching Java Versions on MacOS [Snippets]

DZone 's Guide to

Switching Java Versions on MacOS [Snippets]

Unsure of how to switch between multiple versions of Java on your Mac? Check out this quick tip to help you navigate those waters.

· Java Zone ·
Free Resource

The Java JDK installed on MacOS has some interesting platform specific utilities, like...


...which tells you which Java version you’re currently using and where it’s installed. I have Java 9 currently installed and it tells me:


If you have multiple versions installed, adding -V will list all the versions and where they’re installed:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    9, x86_64: "Java SE 9" /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
    1.8.0_101, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

The next logical question from here would be, "How do I switch versions?" If you set your $PATH in a .profile or similar approach, you can eval java_home to add the current version to your path, but a neat trick discussed in one of the answers here (thanks to this SO user for this tip) uses the -v option to allow you to switch versions. Add a couple of aliases to your .profile like this...

alias j9="export JAVA_HOME=`/usr/libexec/java_home -v 9`; java -version"
alias j8="export JAVA_HOME=`/usr/libexec/java_home -v 1.8`; java -version"
alias j7="export JAVA_HOME=`/usr/libexec/java_home -v 1.7`; java -version"

…and you’ve got a quick shortcut to switching between different versions.

java, jdk, macos, shortcut

Published at DZone with permission of Kevin Hooke , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}