macOS 的 JDK 安装问题 (Homebrew)
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
macOS 的 JDK 安装问题 (Homebrew)的更多相关文章
- JDK安装与配置
JDK安装与配置 一.下载 JDK是ORACLE提供免费下载使用的,官网地址:https://www.oracle.com/index.html 一般选择Java SE版本即可,企业版的选择Java ...
- Ubuntu 14.04下搭建 Android 开发环境(1) -JDK安装
1.下载最新的jdk安装,地址:http://www.oracle.com/technetwork/java/javase/downloads/ 2.解压jdk-8u20-linux-x64.gz,我 ...
- 关于JDK 安装,以及Java环境的设置
关于JDK 安装,以及Java环境的设置 1.下载JDK1.6,选择对应的安装路径 2.配置相应的Java 环境变量 A.属性名称:JAVA_HOME 属性值:C:\Program Files\Jav ...
- linux查看java jdk安装路径和设置环境变量
一:查看类型 windows: set java_home:查看JDK安装路径 java -version:查看JDK版本 linux: whereis java which java (java执行 ...
- Linux下JDK安装笔记
环境说明: Linux版本: CentOS6.2 JDK:jdk-7u60-linux-x64.tar.gz 1.下载jdk-7u60-linux-x64.tar.gz,本人是放到了~/工具 目录 ...
- Java 学习第一步-JDK安装和Java环境变量配置
Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09 Java SE 阿超 9046 views Java作为当下很主流的编程语言,学习Java的朋 ...
- Windows环境下JDK安装与环境变量配置详细的图文教程
原文作者:souvc博文出处:http://www.cnblogs.com/liuhongfeng/p/4177568.html 本节内容:JDK安装与环境变量配置 以下是详细步骤 一.准备工具: 1 ...
- JDK安装和配置
一.Windows下的JDK环境变量配置 在java 中需要设置三个环境变量(1.5之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题) JDK安装完成之后我们来设置环境变量 ...
- 【Linux】 JDK安装及配置 (tar.gz版)
安装环境 Linux(Ubuntu 版) JDK安装 tar.gz为解压后就可以使用的版本,这里我将使用jdk-8u65-linux-x64.tar.gz版,安装到/usr/java/下 步骤一 将文 ...
随机推荐
- java 获取项目根目录
代码入下: request.getSession().getServletContext().getRealPath(); 这里的getRealPath()括号里面可以输入你想得到的具体目录. 需要注 ...
- iOS 中代码获取当前版本号
[1]概念 iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中target,点击“Summary”后看到. Version在plist文件中的key是“CF ...
- YTU 1055: 输入字符串以及输出
1055: 输入字符串以及输出 时间限制: 1 Sec 内存限制: 128 MB 提交: 694 解决: 476 题目描述 编写一函数,由实参传来一个字符串,统计此字符串中字母.数字.空格和其它字 ...
- CSS:清除浮动
周五去听css样式的培训,讲到float导致div不能被撑开的问题,特记录如下: 在写HTML代码的时候,如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部 ...
- 书写优雅的shell脚本(四) - kill命令的合理使用
Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须 ...
- 时间:NSTimer,代码时运行时间段,
一:NSTimer 当时间间隔>1s是用NSTimer; 方法: [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selecto ...
- UILabel 常见问题总结
写在前面:笔者在iOS软件开发中发现UILabel控件有些问题反复出现,所以在这里做点总结,方便自己查阅,也能给大家提供相关问题的解决方案. 一:当label里的内容显示满了的时候,能够自动将字体变小 ...
- AutoIt:获取计算机已安装程序列表
$file = FileOpen(@ScriptDir&"\RegInstalledItems.csv",1) if $file = -1 Then ConsoleWrit ...
- maven+springmvc+spring+mybatis+mysql详细搭建整合过程讲解
转自:https://www.cnblogs.com/lmei/p/7190755.html?utm_source=itdadao&utm_medium=referral @_@ 写在最前 之 ...
- iOS---UICollectionView Class Reference---UICollectionView 类参考文档
UICollectionView 类: Inherits from UIScrollView : UIView : UIResponder : NSObject Conforms to NSCodin ...