码农飞升记-05-JDK8安装包的下载安装方式以及环境变量的配置 - HeavenZhi
码农飞升记-05-JDK8安装包的下载安装方式以及环境变量的配置
前面我们介绍了 《Java是什么?》、《OracleJDK是什么?OracleJDK的版本怎么选择?》、《OpenJDK是什么?》以及《OracleJDK 与 OpenJDK 的区别和联系以及 OracleJDK builds 与其他 OpenJDK builds 的选择问题》,相信大家已经充分了解了 Java 的概念、OracleJDK 和 OpenJDK 的关系以及如何在众多 OpenJDK builds 中选择适合自己的 JDK builds,下面就以 OracleJDK 8 为例,讲解一下 JDK 8 安装包的下载安装方式以及环境变量的配置。
其他 JDK 版本的下载安装方式以及环境变量的配置:
博主用的是 Win10,所以直接用 Win10 举例,其他系统的操作方法也是大同小异。
1.下载 JDK 8 安装包
由于目前想要在 Oracle 官网下载 OracleJDK 都需要一个 Oracle 账户,没账户的朋友可以需要去创建一个(后续下载 OracleJDK 的时候会用到)。
准备 Oracle 账户
前往 Oracle 官网,你会看到以下界面。
-
选择单击页面顶部的查看账户(View Accounts),在Oracle 账户(Oracle Account)下:
- 没有账户的朋友点击创建账户(Create an Account),进入创建账户页面。
- 有账户的朋友可以直接选择单击登录(Sign-In),进入登录页面。
因为创建账户会多一个步骤,为了更好地演示,这里博主先选择创建账户。
创建 Oracle 账户
- 按照表格的提示填写好对应的信息。
- 点击创建账户(Create Account),返回主页界面。
登录 Oracle 账户
成功创建账户之后,再进入登录页面。
- 输入用户名。
- 输入密码。
- 点击登录(Sign in),返回主页界面。
成功登录后会自动返回主页。
选择 OracleJDK 版本
进入 OracleJDK 版本页面
单击主页上方的产品(Products)。
单击选择软件(Software)下的 Java,进入 Java 页面。
单击右边的下载 Java(Download Java),进入OracleJDK 选择页面。
OracleJDK 8 版本区别
虽然前面的章节中有提到,但是以防有新来的朋友不知道,这里还是再提一下。
Java SE 8 以及之前版本的发布节奏和不同版本的差距
根据 Java CPU and PSU Releases Explained 里面的描述:
Which Java version should I choose: the CPU or the PSU?
Oracle strongly recommends that all Java SE users upgrade to the latest CPU release available for a release family. Most users should choose the CPU release.
Users should only use the corresponding PSU release if they are being impacted by one of the additional bugs fixed in that version as noted in the release notes.
The subsequent CPU release will contain all of the fixes from the current PSU. For this reason, organizations should test the current PSU in their environment in anticipation of these fixes being included in the next CPU.
What is the difference between a Java CPU and PSU release?
Java SE Critical Patch Updates (CPU) contain fixes to security vulnerabilities and critical bug fixes. Oracle strongly recommends that all Java SE users upgrade to the latest CPU releases as they are made available. Java SE CPU releases are odd numbered versions (i.e. 7u71, 7u65 – see more on Java SE version numbering schemes here).
Java SE Patch Set Updates (PSU) contain all of fixes in the corresponding CPU, as well as additional non-critical fixes. Java PSU releases should only be used if you are being impacted by one of the additional bugs fixed in that version. The release notes call out the additional fixes available in Java SE PSU releases.
Is the cadence of CPU releases changing?
As before, Java SE CPU releases are scheduled for release on the Tuesday closest to the 17th day of January, April, July and October under the normal Oracle Critical Patch Update schedule.
Starting in October 2014 with the release of Java SE 7u71 (CPU) and Java SE 7u72 (PSU), Oracle plans to additionally release a corresponding PSU release along with each CPU release for Java SE 7. PSU releases provide organizations and developers with access to non-critical fixes in addition to the critical fixes contained in the corresponding CPU.
1.发布的版本区别
CPU (Critical Patch Updates):关键补丁更新(CPU)包含对安全漏洞和关键错误的修复。Oracle 强烈建议所有 Java SE 用户升级到最新的 CPU 版本。Java SE CPU 版本是奇数版本(即7u71、7u65–请参阅此处有关Java SE版本编号方案的更多信息)。
PSU (Patch Set Updates):补丁集更新(PSU)包含相应 CPU 中的所有修复,以及其他非关键修复。只有当您受到该版本中修复的其他错误之一的影响时,才应使用Java PSU版本。Java SE PSU 版本是偶数版本,版本说明中列出了Java SE PSU 发行版中提供的其他修复程序。
PS:
- Oracle 强烈建议所有 Java SE 用户升级到一个版本系列的最新 CPU 版本。大多数用户应该选择 CPU 版本。
- 如果用户受到版本说明中所述的该版本中修复的其他错误之一的影响,则只能使用相应的PSU 版本。
- 随后的 CPU 版本将包含当前 PSU 的所有修复程序。因此,组织应在其环境中测试当前 PSU ,以预期这些修复将包含在下一个 CPU中。
- 从2014年10月开始,随着 Java SE 7u71(CPU)和 Java SE 7u72(PSU)的发布,Oracle 计划在 Java SE 7的每个 CPU 发布版本的同时,额外发布一个相应的 PSU 版本。
2.发布周期
Java 每两年发布一次,直到 Java 6于2006年12月23日在 Sun 下发布为止。由于政治上的僵局,下一个版本是2011年7月28日发布的 Java 7。
在2012年3月7日于伦敦举行的 QCon 2012 大会上,前 Sun Microsystems 负责人、现任 Oracle Java 产品经理 Simon Ritter 承诺 Java 将回到两年的发布周期。
但在2013年4月18日时,Oracle 公司 Java Platform Group 首席架构师 Mark Reinhold 在博客中表示:Oracle 计划将 Java 8 的计划发布推迟到明年,理由是为了修复 Java 的安全漏洞。
3.版本的关系
版本内的更新:例如:Java 8 > Java 8u20 > Java 8u40,大多是对一些安全漏洞的修复和小型功能更新,版本间差距较小(除安全漏洞外)。
版本间的更新:例如:Java 6 > Java 7> Java 8,有较大修改、更新和安全漏洞修复,和传统版本一样,每一个数字的变动都是一次巨大的改革,版本间差距巨大。
2019年4月16日 以及之后发布的 OracleJDK 版本的许可证
2019年4月16日以及之前发布的 OracleJDK 版本是 Binary Code License
2019年4月16日以及之后发布的 OracleJDK 版本使用的是 Java SE OTN License
因为这两个许可证有着巨大的区别,根据这两个许可证长篇累牍的描述结合 RednaxelaFX 在 Oracle 终于要向 Java 的非付费用户开枪了-怎么看?和采用java开发商业软件需要给Oracle付钱吗?两个问题的回答提炼出了几个要点。
许可证 | 免费学习 | 免费个人使用 | 免费开发 | 免费测试 | 免费商业功能 | 免费商业使用 | 免费在台式机/笔记本上使用 | 免费在服务器上使用 | 免费嵌入式设备和其他计算环境上使用 |
---|---|---|---|---|---|---|---|---|---|
Binary Code License | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | ✔ | ✔ | ✘ |
Java SE OTN License | ✔ | ✔ | ✔ | ✔ | – | ✘ | ✔ | ✘ | ✘ |
PS:
- 商业功能指的是 Oracle JDK 自带的 HotSpot VM 的启动参数中是否有 -XX:+UnlockCommercialFeatures,如果有 -XX:+UnlockCommercialFeatures 就代表启动了商业功能,这个功能默认是关闭状态,需要手动开启(在 Java 11 中被废除)。
- Java Flight Recorder(JFR) 已经加入 Open JDK 11,在 Open JDK 11/bin 下可以直接启动,或者在 HotSpot VM 的启动参数中加上 -XX:StartFlightRecording。
采用 Binary Code License 的 OracleJDK 10 及其之前的版本(包含OracleJDK 8u201/8u202及其以前版本,不包含 OracleJDK 8u211/8u212及其以后版本),个人使用和商用几乎是免费的(不使用商业功能和嵌入式设备的情况下)。
采用 Java SE OTN License 的 OracleJDK 11 及其之后的版本(包含 OracleJDK 8u211/8u212及其以后版本,不包含 OracleJDK 8u201/8u202及其以前版本),个人使用免费,商用就要购买许可证才可以(虽然可以偷偷商用,不过那种操作就跟裸奔过雷区一样,你也不知道啥时候会灰飞烟灭,也不知道 Oracle 会不会等养肥了再宰。若想使用免费商用的 Java 11及其之后版本,可以使用其他厂商提供的 OpenJDK builds,参考—OpenJDK是什么?)。
选择适合自己的 OracleJDK 8 版本
如果是选择使用 Binary Code License 的版本就比较麻烦,因为要下载的是历史版本而不是最新版本,所以需要滑到页面最下面:
- 选择单击 Java 归档文件(Java Archive) 下的 Java Archive,进入归档文件选择页面。
如果是选择使用 Java SE OTN License 的版本:
- 直接单击 Java SE 8 下的 OracleJDK 下的 JDK下载(JDK Download),进入正式下载页面。
因为下载历史版本会多两个步骤,为了更好地演示,博主这里选择进入归档文件选择页面(可以自行选择适合自己的 OracleJDK 8 版本,每个 OracleJDK 的正式下载页面都是几乎一样的界面,不必特意跟着博主走,选择适合自己的版本就好)。
进入了 Oracle Java 归档文件选择页面,可以看到屏幕中央有 Java SE 8(8u202 and earlier) 和 Java SE 8(8u211 and later)。这就是我们之前说的 OracleJDK 中采用不同许可证的两个部分,而我们特意进入归档文件里面来找,自然找的是使用 Binary Code License 的版本,也就 Java SE 8(8u202 and earlier) 。
单击 Java SE 下的 Java SE 8(8u202 and earlier),进入正式下载页面。
到了正式下载页面。
注意在正式下载页面里有以下选项:
- Java SE Development Kit: Java SE 开发工具包
- Java SE Runtime Environment: Java SE 运行时环境
- Server JRE (Java SE Runtime Environment): 服务器使用的 Java SE 运行时环境
我们要找的是: Java SE Development Kit
至于是下载 Java SE Development Kit 8u201(上面提到的 CPU 版本) 还是 Java SE Development Kit 8u202(上面提到的 PSU 版本) 或者其他版本,由君自行决定(后续的安装方式都是相同的)。
选择与自己的操作系统相匹配的版本,点击下载图标。
- 在弹出的对话框中勾选接受协议。
- 点击下载按钮。
如果没有提前登录 Oracle 账户的话,这里点击了下载之后会跳转到登录页面,然后成功登录 Oracle 账户之后会自动开始下载。
如果在一开始登录了 Oracle 账户的话,这里点击下载,会直接开始下载。
现在等待 OracleJDK 下载完成即可,在等待它下载的期间,可以先继续往下检查环境变量情况。
2.安装 JDK 8 安装包
在正式安装 JDK 之前,要先检查一下电脑的环境变量。
检查环境变量 Path 列表
- 单击开始菜单。
- 点击设置(Settings),进入设置界面。
单击系统(System),进入系统设置界面。
- 单击关于(About)。
- 点击高级系统设置(Advanced system settings),进入高级设置页面。
- 点击高级(Advanced)。
- 单击环境变量(Environment Variables),进入环境变量界面。
双击 Path(单击一下 Path 之后单击编辑(Edit)),进入 Path 列表。
检查 Path 列表已有的路径中是否有包含 Java 的路径:
- 如果 Path 列表已有的路径中有包含 Java 的路径,则代表当前计算机曾经配置过 Java,根据 Path 列表中的路径,去找到对应文件夹:
- 如果对应文件夹内存在 Java 相关文件,则代表当前计算机已经配置了 Java 版本(自行决定是否需要再多安装配置一个 Java 版本,或是将以前的 Java 卸载重新安装)。
- 如果需要再多安装配置一个 Java 版本—JDK多环境配置
- 如果需要卸载 Java 版本
- JDK 安装包版本
- 在计算机的应用程序设置中卸载环境变量 Path 列表已有的路径中有包含 Java 的路径所指的 JDK。
- 删除环境变量 Path 列表中的该失效路径(环境变量 Path 列表已有的路径中有包含 Java 的路径)。
- JDK 压缩包版本
- 进入环境变量 Path 列表已有的路径中有包含 Java 的路径,将该路径下所有文件删除。
- 删除环境变量 Path 列表中的该失效路径(环境变量 Path 列表已有的路径中有包含 Java 的路径)。
- JDK 安装包版本
- 如果对应文件夹不存在或者文件夹内没有 Java 相关文件,则代表当前计算机没有配置 Java,但曾经安装/配置过 Java。建议删除该失效路径(环境变量 Path 列表已有的路径中有包含 Java 的路径):
- 单击选中该路径
- 点击右侧的删除(Delete),删除该路径。
- 如果对应文件夹内存在 Java 相关文件,则代表当前计算机已经配置了 Java 版本(自行决定是否需要再多安装配置一个 Java 版本,或是将以前的 Java 卸载重新安装)。
- 如果 Path 列表已有的路径中没有包含 Java 的路径,则代表当前计算机没有配置 Java。
关闭已经打开的这些窗口,清空桌面(不是移开水杯,擦桌子之类的哦!