The java, javac, etc. command line tools are sensitive to the value of the JAVA_HOME environment variable and will use 1.6 if this variable points to a 1.6 JDK.
The tool /usr/libexec/java_home
is your friend here. Running
/usr/libexec/java_home
will print out the appropriate JAVA_HOME
value for the most up to date JDK on your system.
you can apply constraints using the -v
flag, for example
/usr/libexec/java_home -v '1.6*'
will return a JAVA_HOME
value for the best available 1.6 JDK on your system. You can use this value to set JAVA_HOME
:
export JAVA_HOME=`/usr/libexec/java_home -v '1.6*'`
either as a one-off for a particular Terminal session, or permanently for all future terminal sessions by adding the above line to the .bash_profile
file in your home directory.
$ export JAVA_HOME=`/usr/libexec/java_home -v '1.6*'`
$ java -version
java version "1.6.0_37"
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)
$ export JAVA_HOME=`/usr/libexec/java_home -v '1.7*'`
$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
参考链接: http://stackoverflow.com/questions/13594864/how-to-revert-to-java-1-6-on-mac-os-x-10-7-5