雖然 Java 8 的正式版已經發布了兩年有余,但目前 Java 企業級應用的主打版本還是 Java 6 和 Java 7,更慘的是公司的一些早期項目還必須在 Java 5 下開發運行,而我還想在工作之余體驗+學習 Java 8 的新特性。於是,我需要在我的 Mac 上同時安裝 JDK 1.5,JDK 1.6, JDK 1.7 和 JDK 1.8。
過去 Mac 上的 Java 都是由 Apple 自己提供的,但只支持到 Java 6,並且從 OS X 10.7 開始系統不再默認安裝了(可選安裝,原自帶的是 JDK 1.6)。后來 Apple 加入 OpenJDK 陣營繼續支持 Java 6,而從 Java 7 開始由 Oracle 負責提供。暫且認為是 Apple 派 和 Oracle 派。
在 Terminal 中輸入 java -version 可查看當前JDK版本信息,如果還沒安裝任一JDK,就會提示安裝,點擊后會跳到 Oralce Java 的下載網頁。
系統環境
OS X EI Capitan(版本 10.11.5)
前期准備
- Java安裝包
- JDK 1.5:Java for Mac OS X 10.5 Update 10(From: Apple)
- JDK 1.6:Java for OS X 2015-001(From: Apple)
- JDK 1.7 及以上:Java 中文官網 或 Oracle Java 下載(From: Oracle)
- 輔助工具
- Pacifist:用於提取*.dmg安裝包中的文件(點我下載)
安裝步驟
JDK 1.6 及以上版本的安裝過程較為簡單,不再贅述。下面着重介紹安裝 JDK 1.5 的過程。
-
刪除系統中的默認目錄文件:
$ 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” 即可恢復默認。
-
使用 Pacifist 提取 “Java for Mac OS X 10.5 Update 10”中的文件:
- 在 JavaForMacOSX10.5Update10.dmg 上 右鍵 -> 打開方式 -> Pacifist
- 找到 /System/Library/Frameworks/JavaVM.framework/Versions/ 目錄,選中 1.5 和1.5.0 兩個目錄,右鍵 -> 安裝到默認位置
- Terminal 中切換到 jdk 1.5 的安裝目錄下,驗證是否安裝成功:
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.jdk
系統默認的 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。
在 Eclipse 中配置 JRE
Preferences -> Java -> Installed JREs,將安裝好的各版本 JDK 添加到列表中。
注:本文不包含JDK多版本管理切換的部分。
參考