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
fi
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 ~/.bashrc
file. 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.
Conclusion
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.