Why after installing a newer version of Java, it doesn't reflect immediately on your profile to use the right version?
Anyway, I have a simple solution on how to switch java in Mac OS. My Mac have different version of Java and I want to switch it anytime I want depends on the project that I'm working. Let's do it in 4 simple steps:
Step 1:(Check what is your current java version)
Enter the command:
java -version
Output:
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
Step 2: (Display all the installed Java from your Mac OS)
Enter the command:
/usr/libexec/java_home -V
Output:
Matching Java Virtual Machines (5):
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_51, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
1.7.0_25, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
1.6.0_65-b14-462, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-462, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Step 3: (I will use the Java 1.7.0_51)
Enter the command:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7.0_51)
Step 4:(Check what is your current java version after you execute the Step 3)
Enter the command:
java -version
Output:
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Step 5:(Update your bash_profile)
Enter the command:
sudo nano ~/.bash_profile
Add the following line or update the export JAVA_HOME line and the save it (CTRL X):sudo nano ~/.bash_profile
export JAVA_HOME=$(/usr/libexec/java_home -v 1.7.0_51)