2014-07-16 34 views
0

請參閱以下3個命令及其結果在MacOS上:的Mac OS Java主ambiguty

Korays-MacBook-Pro:~ koraytugay$ /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home 

Korays-MacBook-Pro:~ koraytugay$ java -version 
java version "1.7.0_55" 
Java(TM) SE Runtime Environment (build 1.7.0_55-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) 

Korays-MacBook-Pro:~ koraytugay$ echo $JAVA_HOME 
/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents/Home 

爲什麼第一個回1.8?究竟是/ libexec/java_home?

回答

1

科瑞,

按照該Oracle docs ...

JAVA_HOME只是用來觸發路徑,以使用不同的JDK圖像中發現的「Java的環境變量。不幸的是,並不是所有'java'啓動腳本都遵守這個env變量。它也被許多java工具啓動腳本用來確定運行什麼'java',繞過了PATH設置中找到的'java'。在JDK構建期間設置這個變量是一個壞主意,不要這樣做。

我自己使用Eclipse,並且沒有定義JAVA_HOME env變量,這裏是我的輸出運行相同的命令。

[email protected] ~ 
$ /usr/libexec/java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home 

[email protected] ~ 
$ java -version 
java version "1.8.0_05" 
Java(TM) SE Runtime Environment (build 1.8.0_05-b13) 
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode) 

[email protected] ~ 
$ echo $JAVA_HOME 

不確定爲什麼你有兩個不同的版本,但你最近嘗試更新JDK嗎?也許當你升級它時,無法啓動一個腳本來更新你的$ JAVA_HOME。

這裏是instructions用於在基於* nix的操作系統上安裝JDK和設置JAVA_HOME。

讓我知道這是否有幫助,如果需要,我可以幫助您深入挖掘。

+0

啊,這就是問題所在。第一個在PATH中觸發java ..明白了..但是你爲什麼會說設置JAVA_HOME變量是不好的? –

+0

哦,這是從字面上直接從Oracle文檔頁:) 我有一個系統管理員的背景,雖然所以我一般警告用戶要在使用任何種類的env變量在Windows和OS X上玩時要非常小心! –

+0

好的,謝謝..我已明確地將JAVA_HOME設置爲1.7,並且我安裝了1.7和1.8。可能1.8自己到/ usr/libexec/java_home(我仍然不明白這個命令實際上是什麼,但是沒問題..)1.7仍然只存在於/Library/Java/JavaVirtualMachines/jdk1.7.0_55.jdk/Contents /首頁,順便說一句1.8是在:/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home –