OS X Java 環境配置

MacBook Pro OS X 10.9。

JDK1.7

配置如下

網上查了一下,發現網上普遍存在一種不太好的硬編碼方式,比如以下這些:
JAVA_HOME=/Library/Java/Home
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
//上面的幾個目錄其實是等價的鏈接關係,都指向的是蘋果提供的 Java 6
/System/Library/Frameworks/JavaVM.framework/Versions/ 下有多個不同版本的目錄,但它們鏈接的都是 CurrentJDK 目錄。總之,這些Java都是蘋果提供的Java,Oracle 或 OpenJDK 提供的 Java 不在此目錄中。

因爲不同的 Java 版本和不同的 Java 實現可能安裝在了不同的目錄下,所以使用硬編碼的目錄會有如下缺點:
  • 安裝或升級新的 Java 後需要重新設置 JAVA_HOME(尤其是帶版本號的目錄)
  • 無法適應不同的 Java 實現(Apple和Oracle的)

一點歷史:過去 Mac 上的 Java 都是由 Apple 自己提供的,只支持到 Java 6,並且OS X 10.7 開始系統並不自帶(而是可選安裝)。後來 Apple 加入 OpenJDK 繼續支持 Java 6,而 Java 7 將由 Oracle 負責提供。

根據蘋果的官方說明,Mac OS X 10.5 及以後的版本應該使用 /usr/libexec/java_home 命令來確定 JAVA_HOME ,而在此之前的版本由於沒有這個命令,則應該使用固定的 /Library/Java/Home 目錄。

最佳方式是:
export JAVA_HOME=`/usr/libexec/java_home`
另外,你還可以這樣用,來選擇不同的Java版本:
export JAVA_HOME=`/usr/libexec/java_home -v 1.6`
or
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

我安裝完 Oracle Java 7後 java_home 命令的各種輸出結果是:
默認或指定1.7的輸出:
/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home

/usr/libexec/java_home -v 1.6 的輸出:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

一些補充說明:
Java 7 需要 Mac OS X 10.7.3 (Lion) 及以上版本才能安裝。
在瀏覽器中運行Java要求是64位瀏覽器,所以不支持Chrome, Safari 或 Firefox 沒問題。

更多內容,比如“如何卸載”、“卸載 Oracle Java 7 後如何還原 Apple Java 6”等,請參考下面這些參考資料:


發佈了60 篇原創文章 · 獲贊 3 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章