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.
Join the DZone community and get the full member experience.
Join For FreeThe Java JDK installed on MacOS has some interesting platform specific utilities, like...
/usr/libexec/java_home
...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:
/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home
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.
Published at DZone with permission of Kevin Hooke, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Trending
-
What to Pay Attention to as Automation Upends the Developer Experience
-
Reactive Programming
-
Transactional Outbox Patterns Step by Step With Spring and Kotlin
-
Operator Overloading in Java
Comments