雖然 Java 8 的正式版已經發布了兩年有餘,但目前 Java 企業級應用的主打版本仍是 Java 6 和 Java 7,更慘的是公司的一些早期項目還必須在 Java 5 下開發運行,而我還想在工做之餘體驗+學習 Java 8 的新特性。因而,我須要在個人 Mac 上同時安裝 JDK 1.5,JDK 1.6, JDK 1.7 和 JDK 1.8。html
過去 Mac 上的 Java 都是由 Apple 本身提供的,但只支持到 Java 6,而且從 OS X 10.7 開始系統再也不默認安裝了(可選安裝,原自帶的是 JDK 1.6)。後來 Apple 加入 OpenJDK 陣營繼續支持 Java 6,而從 Java 7 開始由 Oracle 負責提供。暫且認爲是 Apple 派 和 Oracle 派。java
在 Terminal 中輸入 java -version 可查看當前JDK版本信息,若是還沒安裝任一JDK,就會提示安裝,點擊後會跳到 Oralce Java 的下載網頁。api
OS X EI Capitan(版本 10.11.5)oracle
JDK 1.6 及以上版本的安裝過程較爲簡單,再也不贅述。下面着重介紹安裝 JDK 1.5 的過程。app
刪除系統中的默認目錄文件:less
$ sudo rm /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0
備註:若是提示 「Operation not permitted」,是由於 Mac OS X 在 EL Capitan 以後加入了 Rootless 機制,不能再爲所欲爲的讀寫不少路徑下的文件了。重啓系統按住 Command + R 進入恢復模式,打開 實用工具 -> Terminal,執行 「csrutil disable」 便可關閉 Rootless ;一樣步驟執行「csrutil enable」 便可恢復默認。jsp
使用 Pacifist 提取 「Java for Mac OS X 10.5 Update 10」中的文件:工具
1 $ cd /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin 2 $ ./java -version 3 java version "1.5.0_30" 4 Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_30-b03-389-11M4833) 5 Java HotSpot(TM) Server VM (build 1.5.0_30-161, mixed mode)
Apple派的 JDK 1.6 與 JDK 1.5 在 OS X 上的安裝路徑是不一樣的,JDK 1.6 與 Oracle 派的 JDK 的安裝路徑一致,這點須要特別注意。學習
JDK 1.5 的安裝路徑:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0
JDK 1.6 的安裝路徑:/Library/Java/JavaVirtualMachines/1.6.0.jdkui
系統默認的 JDK 版本,是經過 link 來實現的,也就是說 Java 程序如 Maven、Eclispe 選擇哪一個 JDK 是經過各自的啓動腳本,按照約定的 link 文件去查找 Java 程序的。好比 Maven 就會先找 Apple 派的 JDK 後找 Oracle 派的 JDK。
Apple 派的 JDK 經過把文件 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDKlink 到某個版本的 JDK 實現了多版本支持。
Oracle 派的 JDK 學習 Aplle 派的方法也支持多版本,link 文件是 /System/Library/Frameworks/JavaVM.framework/Versions/Current。
Preferences -> Java -> Installed JREs,將安裝好的各版本 JDK 添加到列表中。
注:本文不包含JDK多版本管理切換的部分。