为什么OS X java总是报告1.6?

时间:2010-06-02 17:57:47

标签: java macos command-line

有人碰到这个吗?

我意识到1.6是OS X上的默认设置,但我正在尝试使用1.5在命令行上编译/运行程序。但是,无论我尝试什么,它都会报告1.6。

/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home/bin/java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)
Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)
rtp-wwilliam-8712:bin wwilliam$ 

请注意java二进制文件的完整路径。无论我尝试使用哪种早期版本的Java,我总是将1.6报告为版本。

java二进制文件确实存在于该路径中。该目录也是我路径中的第一个目录。

使用OS X 10.6.3安装最新的Java更新。

思想?

1 个答案:

答案 0 :(得分:8)

因为在10.6,1.5(在JavaVM框架中)符号链接到1.6。 OS X 10.6仅配备1.3和1.6; 1.4和1.5是符号链接到1.6:

$ ll /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
lrwxr-xr-x  1 root  wheel     5B May 19 12:17 1.3@ -> 1.3.1
drwxr-xr-x  3 root  wheel   102B Dec  2 20:55 1.3.1/
lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.4@ -> CurrentJDK
lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.4.2@ -> CurrentJDK
lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.5@ -> CurrentJDK
lrwxr-xr-x  1 root  wheel    10B May 19 12:17 1.5.0@ -> CurrentJDK
lrwxr-xr-x  1 root  wheel     5B May 19 12:17 1.6@ -> 1.6.0
drwxr-xr-x  8 root  wheel   272B May 19 17:56 1.6.0/
drwxr-xr-x  9 root  wheel   306B May 19 17:56 A/
lrwxr-xr-x  1 root  wheel     1B May 19 12:17 Current@ -> A
lrwxr-xr-x  1 root  wheel     3B May 19 12:17 CurrentJDK@ -> 1.6