Showing posts with label Mac. Show all posts
Showing posts with label Mac. Show all posts

Saturday, January 03, 2015

How to manage multiple JDK versions in Yosemite



See all installed java versions,  (Please note the capital V, simple v will be used later on for different purpose)
 /usr/libexec/java_home -V  
Outputs..
 Matching Java Virtual Machines (4):  
   1.8.0_25, x86_64:  "Java SE 8"  /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home  
   1.7.0_71, x86_64:  "Java SE 7"  /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home  
   1.6.0_65-b14-466.1, x86_64:  "Java SE 6"  /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home  
   1.6.0_65-b14-466.1, i386:  "Java SE 6"  /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home  
Now you know whats available. All you need to do now is change your ~/.bash_profile to set JAVA_HOME. Before we do so, lets see how we can use /usr/libexec/java_home tool to retrieve JAVA_HOME paths of each versions.

Following command gives JAVA_HOME path of a given java version installed.
 /usr/libexec/java_home -v  
v1.8
  asanga@localhost:$ /usr/libexec/java_home -v 1.8  
 /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home  
v1.7
  asanga@localhost:$ /usr/libexec/java_home -v 1.7  
 /Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home  
Now, lets add that trick to our ~/.bash_profile.
 export JAVA_HOME=`/usr/libexec/java_home -v 1.8`  
 #export JAVA_HOME=`/usr/libexec/java_home -v 1.7`  
 #export JAVA_HOME=`/usr/libexec/java_home -v 1.6`  
Now you can uncomment the version you need when you need.