Multiple Java versions support on OS X and JAVA_HOME location I know is possible to have multiple versions of Java on OS X but i find it difficult to understand how it works.

I upgraded to Mountain Lion and now echo $JAVA_HOME is empty.

However in /System/Library/Frameworks/JavaVM.framework/Versions/

1.4     1.5     1.6     A       CurrentJDK
1.4.2   1.5.0   1.6.0   Current


When I go into 1.4.2 and I execute java - version or ./java -version 


  Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)


So why all those versions are used for if they have same version of Java?

Then I downloaded the JDK 7 from Oracle and installed it.

Where a new  JDK is usually installed? 

And final question : How can I choose which version should run by default by all applications?

In Win. I set JAVA_HOME to the C:/ProgramFiles/Java/.…
I put in Path : location to JAVA_HOME/bin and that's it.
Preferring a version of Java

Use Java Preferences in the normal way. 

Depending on what you have installed in addition to Apple's distribution of Java, the first tab of the utility may appear a little different. 

An example, without the familiar options for applets and Java Web Start: 



There is some background reading on how this works at the command line level. The command line tool java_home reports back this preference setting.

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home


The /usr/bin/java placeholder app makes use of these settings run the preferred version of Java.

$ which java
/usr/bin/java

$ java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b03-424-11M3720)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03-424, mixed mode)


Finally when configuring JAVA_HOME in a launch script for Tomcat or Maven you can hook into the preference system:

export JAVA_HOME=`/usr/libexec/java_home`


Answers elsewhere note that Java may be installed at several paths – 


/System/Library/Java/JavaVirtualMachines
/Library/Java/JavaVirtualMachines
~/Library/Java/JavaVirtualMachines


– but for what's currently described in the question here, the JDK from Oracle on Mountain Lion, only one path is likely.