updated on 2020/3/11
關於 Homebrew
鑒於 Homebrew 的易用性, 本文提供的均為 Homebrew 安裝 JDK 的方法.
已了解 Homebrew 可以跳過這節直接看正文, 如果不了解的可能要先了解一下, 在電腦上安裝 Homebrew 之后再進行后續的 JDK 的安裝.
Homebrew 是 macOS 下的一個非常好用的包管理工具, 可以用於類似於 MySQL 的服務程序的管理, Homebrew Caskroom 則可用於應用程序 (GUI 軟件) 的安裝與管理.
- 具體使用可以參考 像 Mac 高手一樣管理應用,從 Homebrew 開始 - 少數派
- 通過 Homebrew 可以安裝許多軟件, 點擊 我在 Mac 上都用什么 - 難以想象的晴朗 可以看看我裝了哪些軟件.
懶人版
# 最新版 Oracle JDK
brew cask install oracle-jdk
# Oracle JDK11、Oracle JDK8 需要手動下載
# https://www.oracle.com/hk/java/technologies/javase-downloads.html
# 最新版 Oracle OpenJDK
brew cask install java
# Oracle OpenJDK11
brew cask install java11
# 使用該命令則安裝由 Oracle 提供的最新版的 OpenJDK
brew cask install java
# 使用該命令則安裝由 Oracle 提供的 OpenJDK11
brew cask install java11
# OpenJDK 在 Oracle 不再維護后會轉交給 RedHat 維護
brew cask install openjdk@11
# AdoptOpenJDK
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk8
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk9
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk10
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk11
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk12
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk
# Azul Zulu 提供了 JDK 7
# Azul Zulu 也提供其他版本的 JDK 像 zulu8、zulu11 等
brew cask install homebrew/cask-versions/zulu7
brew cask install homebrew/cask-versions/zulu8
brew cask install homebrew/cask-versions/zulu11
brew cask install homebrew/cask-versions/zulu
# Apple 提供的 JDK6
brew cask install homebrew/cask-versions/java6
JDK 的版本選用
2019 年之后, Oracle 對 Java 的商業模式進行了一系列改革, 多種版本的 JDK 開始出現在開發者的視野中.
整體來看, 存在三個版本的 JDK, 分別是 Oracle JDK、Oracle 編譯的 OpenJDK 和第三方廠商編譯的 OpenJDK. 其實三者在功能上並沒有明顯的差異, 主要在一些版權相關的 API 上有一些差別(如 OpenJDK 就無法使用 Oracle 版本中所使用的字體渲染 API).
Oracle JDK
關於 Oracle JDK 有一個基本的概念: Oracle 規定在一個 Oracle JDK 的生命周期內 (指的是下一個版本的 JDK 推出之前) 可以免費商用, 而生命周期之外繼續在生產環境中使用, 想要繼續商用 Oracle 對該版本的后續更新就需要付費.
但並不是說下載這些版本 JDK 的后續更新就需要付費, 開發者可以從 Java SE - Downloads | Oracle Technology Network 免費下載並使用, 但是在生產環境中使用它們就需要付費了. 另外可以看到這個頁面里只有最新版、JDK11 和 JDK8 的下載, 這是為了維護方便, Oracle 僅提供 LTS(長期支持) 版本的維護. 據稱 JDK11 的維護將持續到 2024 年.
所以說如果想要使用Oracle JDK 又不想付費, 只要一直使用最新版本的JDK就可以了.
# 運行以下命令會安裝最新版本的 Oracle JDK
## 2019-5, 該命令會安裝 Oracle JDK 12
## 2020-3, 該命令則會安裝 Oracle JDK 13
brew cask install oracle-jdk
另外兩個 LTS 版本的 Oracle JDK 無法通過 Homebrew 安裝, 需要手動從 Java SE - Downloads | Oracle Technology Network 獲取.
Oracle OpenJDK
Oracle 還提供其編譯的 OpenJDK, 事實上這個 OpenJDK 與其他 OpenJDK 幾乎沒有區別.
# 使用該命令則安裝由 Oracle 提供的最新版的 OpenJDK
## 2020-3, 這個命令會安裝 OpenJDK13
brew cask install java
# 使用該命令則安裝由 Oracle 提供的 OpenJDK11
brew cask install java11
# OpenJDK 在 Oracle 不再維護后會轉交給 RedHat 維護
brew cask install openjdk@11
AdoptOpenJDK
可以看到 Oracle 提供的 JDK 版本非常有限, 想要使用更多版本的 JDK, 就必須要尋求開源世界的幫助, 一個不錯的選擇就是 AdoptOpenJDK.
AdoptOpenJDK 是完全免費的、無品牌的 OpenJDK 版本,基於 GPL 開源協議(+Classpath Extension), 以免費軟件的形式提供社區版的 OpenJDK 二進制包, 公司也可安全且放心使用.
與 Oracle 提供的 OpenJDK 不同,AdoptOpenJDK 會持續為 OpenJDK 提供類似於 Oracle JDK 的維護, 而且通過 AdoptOpenJDK 可以安裝最多版本的 JDK.
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk8
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk9
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk10
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk11
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk12
# 安裝最新版本 OpenJDK
brew cask install AdoptOpenJDK/openjdk/adoptopenjdk
JDK7 與 Zulu
JDK7 甚至 AdoptOpenJDK 都不提供了, 這時就要求助於一些商業公司, Azul Zulu 提供了自編譯的 zulu, 在提供付費支持的商業版本外, Azul 也為 zulu 提供免費的社區技術支持.
# 通過安裝 zulu7 我們可以安裝 OpenJDK7.
brew cask install homebrew/cask-versions/zulu7
# Azul Zulu 也提供其他版本的 JDK 像 zulu8、zulu11 等
brew cask install homebrew/cask-versions/zulu8
brew cask install homebrew/cask-versions/zulu11
brew cask install homebrew/cask-versions/zulu
JDK6
年久的 JDK6 主要由 Apple 提供, 按照以下命令即可安裝
brew cask install homebrew/cask-versions/java6
