2010-06-02 41 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