虽然 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多版本管理切换的部分。