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/下 步骤一 将文 ...
随机推荐
- iOS的基本框架
- CentOS 7.2安装Jenkins自动构建Git项目
1.环境 本文使用VMWare虚拟机进行实验. 最终实现目标,在Jenkins服务器上新建构建任务,从Git服务器上拉取master HEAD(不编译,仅演示),部署到"目标服务器" ...
- e.target与e.currentTarget的区别
在DOM事件对象中有两个属性总是时不时的困扰我,就是target和currentTarget,有时候很迷惑分不清两者的区别,因此有必要把这两个属性好好梳理一下,加深理解,以便日后的查询. MDN中对t ...
- Web Assembly背景
Javascript ,也叫Ecma script, 是这家伙用了 10 天时间赶出来的.. 所以,各位程序猿们,如果你觉得老板 10 天要你们上线一个 App 是一个丧心病狂的事情,那么可以多想想 ...
- oracle:rman恢复----通过时间set until time
试验计划:先做一个0级备份,再创建一个表,插入几条数据,最后删除表,然后通过rman把该表的数据恢复. 试验环境:在归档模式,oracle10.2.0.1 开始试验: 1.rman level 0备份 ...
- 【Codeforces 582A】 GCD Table
[题目链接] 点击打开链接 [算法] G中最大的数一定也是a中最大的数. G中次大的数一定也是a中次大的数. 第三.第四可能是由最大和次大的gcd产生的 那么就不难想到下面的算法: ...
- dos窗口出现error:could not open ...jvm.cfg解决方法
在cmd程序中,运行javac -version查看jdk是多少位时出现错误 error:could not open ...jvm.cfg解决方法 出现这种情况大多是因为电脑上之前安装过JDK,卸载 ...
- Python mutilprocess模块之第二种创建进程方法--继承Process类
'''创建新的进程的第二种方法: 使用类的方式,可以自己定义一个类,继承Process类,每次实例化这个类的时候, 就等于实例化一个进程对象 '''from multiprocessing impor ...
- 【Cocos2d-HTML5 开发之一】新建HTML5项目及简单阐述与cocos2d/x引擎关系
真的是有一段时间没写博了,这段时间呢,发生的事情真的挺多,另外自己呢也闲来做了一些自己的喜欢的东西,主要做的还是基于Mac系统的Cocoa框架的各种编辑器吧.(对了,今年初也出了自己第二本书<i ...
- centos7 && centos6.5部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发
centos7 && centos6.5 部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发 一.准备工作: 1: 检查kvm ...