Firstly, thanks for the question, I needed to solve this myself.
This is what I found out.
whereis java points to /usr/bin/java/usr/bin/java is a symbolic link to /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java- On my Mac
/System/Library/Frameworks/JavaVM.framework/Versions/Current is a symbolic link to /System/Library/Frameworks/JavaVM.framework/Versions/A , which is currently Java 1.7.0._07-b10
We need to redirect Current to the JVM we want to use.
On my system, Java 1.6.0_37 was installed in /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK , which is a symbolic link to /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
What I did was ...
Backup Current
sudo mv Current Current.bak
Make a new symlink to CurrentJDK
sudo ln -s CurrentJDK Current
Then on the command line I did java -version and got
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909) Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)
Now, to move it back, I just moved Current
sudo mv Current Current.1.6
Then dragged Current to A
sudo ln -s A Current
Then on the command line I did java -version and got
java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
Now I only need sudo mv Current Current.1.7 and sudo mv Current.1.6 Current to go back and cancel it in order to move forward.
This decision was inspired by https://discussions.apple.com/thread/4444438?start=0&tstart=0 , but I had to play with it to make sure;)
UPDATED
After some game, I created a java6 that lives in /usr/bin/java6 and points to /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Commands/java , this basically allows me to execute java6 from command line without having to switch versions