You installed a Java Development Kit (JDK)  in your Mac OS X, but what do you do you if your currently installed JDK version is not compatible?‌‌However, you probably won't migrate all your projects to it yet and will want to maintain several versions of the JDK on your machine, switching Java versions when needed.

I'm using a Mac, this post will work on a Mac and, perhaps, on some Linux machines. If you have a good recipe on how you switch Java versions on the command line on Windows, please share with the community in the comments.

You can reliably get your current Java version when you run the command:

Open a Terminal window

Type java -version and Enter to check which version of Java you have as a default

In this post, I want to share my setup to switch the active JDK version

Option 1:

Firt, cd into   /usr/libexec

Run ./java_home -V which will output something like the following:‌

You will see all installed versions of Java in your Mac OS X or use :

$ ls -al /Library/Java/JavaVirtualMachines

Now, open ~/.bash_profile with a text editor. For example, with VI or VIM, you will type vi ~/.bash_profile

Replace the version_of_your_java  with the JDK version you want to set.

Save the file (for VIM, it is x! in a Command mode) and start a new Terminal window.

Type java -version again to see the default Java version changed!

Option 2 :

Add the function  java-change to the file ~/.bashrc.

# set and change java versions
function java-change() {
  echo "rcherara ------------ old java version"
  java -version
  if [ $# -ne 0 ]; then
    export JAVA_HOME=`/usr/libexec/java_home -v $@`
    export PATH=$JAVA_HOME/bin:$PATH
  echo "rcherara ------------ new java version"
  java -version


Now with these functions in place you can set the desired versions of Java as active. Save the ~/.bashrcfile. If you're doing it in a terminal session, reload it with the source ~/.bashrc.

Try now setting your default Java to one of the different Java versions you currently have installed.


In this post, you have learned how to change Java version on macOS. Hope you found this useful and please leave me a feedback so I can hear what you think.