10.5以后的$JAVA_HOME没有被在.bash_profile中设置的话会被默认设置为 /usr/libexec/java_home。

如果一台mac里面安装了多个JDK, 可以通过/usr/libexec/java_home -V 来查看, 结果如下:

 1 $ /usr/libexec/java_home -V
 2 
 3 Matching Java Virtual Machines (3):
 4 
 5     1.7.0_13, x86_64:"Java SE 7"/Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
 6 
 7     1.6.0_65-b14-462, x86_64:"Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
 8 
 9     1.6.0_65-b14-462, i386:"Java SE 6"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
10 
11  
12 
13 /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home

最后一行实际上反映的是系统默认使用的JAVA_HOME路径, 也就是执行/usr/libexec/java_home得到的路径。

如果想使用JDK1.6怎么办?

请在.bash_profile中添加 

1 JAVA_HOME=$(/usr/libexec/java_home -v 1.6)
2 
3 export PATH=$PATH:$JAVA_HOME
4 
5 export JAVA_HOME

这样在bash下默认使用的就是JDK 1.6了

1 $ java -version
2 
3 java version "1.6.0_65"
4 
5 Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
6 
7 Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)

另外要注意的一个地方是, 有些App是直接使用:

 1 $ pwd
 2 /System/Library/Frameworks/JavaVM.framework/Versions
 3 $ ls -l
 4 total 64
 5 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4 -> CurrentJDK
 6 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4.2 -> CurrentJDK
 7 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5 -> CurrentJDK
 8 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5.0 -> CurrentJDK
 9 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6 -> CurrentJDK
10 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6.0 -> CurrentJDK
11 drwxr-xr-x  8 root  wheel  272 Feb 17 22:11 A
12 lrwxr-xr-x  1 root  wheel    1 Feb 17 22:11 Current -> A
13 lrwxr-xr-x  1 root  wheel   59 Feb 17 22:11 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
14 $ 

CurrentJDK来定位JDK路径的。一般如果JDK1.6是后安装的就会看到CurrentJDK为1.6。

要改的话:

 1 $ ls -l
 2 total 64
 3 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4 -> CurrentJDK
 4 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4.2 -> CurrentJDK
 5 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5 -> CurrentJDK
 6 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5.0 -> CurrentJDK
 7 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6 -> CurrentJDK
 8 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6.0 -> CurrentJDK
 9 drwxr-xr-x  8 root  wheel  272 Feb 17 22:11 A
10 lrwxr-xr-x  1 root  wheel    1 Feb 17 22:11 Current -> A
11 lrwxr-xr-x  1 root  wheel   59 Feb 17 22:11 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
12 $ sudo rm CurrentJDK
13 Password:
14 $ ln -s /Library/Java/
15 ln: ./: File exists
16 $ ls -l
17 total 56
18 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4 -> CurrentJDK
19 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4.2 -> CurrentJDK
20 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5 -> CurrentJDK
21 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5.0 -> CurrentJDK
22 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6 -> CurrentJDK
23 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6.0 -> CurrentJDK
24 drwxr-xr-x  8 root  wheel  272 Feb 17 22:11 A
25 lrwxr-xr-x  1 root  wheel    1 Feb 17 22:11 Current -> A
26 $ ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents CurrentJDK
27 $ ls -l
28 total 64
29 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4 -> CurrentJDK
30 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.4.2 -> CurrentJDK
31 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5 -> CurrentJDK
32 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.5.0 -> CurrentJDK
33 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6 -> CurrentJDK
34 lrwxr-xr-x  1 root  wheel   10 Feb 17 22:11 1.6.0 -> CurrentJDK
35 drwxr-xr-x  8 root  wheel  272 Feb 17 22:11 A
36 lrwxr-xr-x  1 root  wheel    1 Feb 17 22:11 Current -> A
37 lrwxr-xr-x  1 root  wheel   58 Feb 18 09:53 CurrentJDK -> /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents
38 $ 

 

posted on 2014-02-18 09:58  我是猴面包的树  阅读(1504)  评论(0编辑  收藏  举报