2010-06-02 38 views
3

有人碰到过这个吗?为什么OS X java总是报告1.6?

我意识到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二进制文件确实存在于该路径中。该目录也是我路径中的第一个目录。

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

想法?

+0

java 1.6编译器的命令行开关可以在1.4或1.5兼容模式下编译。 – 2010-06-02 18:01:42

+0

@保罗 - 非常好,thk – wadesworld 2010-06-02 18:39:40

回答

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 [email protected] -> 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 [email protected] -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10B May 19 12:17 [email protected] -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10B May 19 12:17 [email protected] -> CurrentJDK 
lrwxr-xr-x 1 root wheel 10B May 19 12:17 [email protected] -> CurrentJDK 
lrwxr-xr-x 1 root wheel  5B May 19 12:17 [email protected] -> 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 [email protected] -> A 
lrwxr-xr-x 1 root wheel  3B May 19 12:17 [email protected] -> 1.6 
+0

Doh!我检查了二进制文件上的符号链接,但没有在树上那么远。在某些系统中,我曾听说过1.6版本删除了以前的版本,但我认为,因为我仍然看到那里的目录,我认为它没有在我的目录中完成。谢谢。 – wadesworld 2010-06-02 18:03:20