文章目录
  1. 1.版本的选择
    1. 1.1 Java 版本历史
    2. 1.2 官方支持情况
    3. 1.3 JDK 市场份额(2017-05-03 数据)
  2. 2 HotSpot 的安装
    1. 2.1.CentOS 环境
      1. 2.1.1 卸载已有
      2. 2.1.2 下载与安装
      3. 2.1.3 环境配置
      4. 2.1.4 参数配置
      5. 2.1.5 验证
    2. 2.2.Windows 环境
      1. 2.2.1 下载与安装
      2. 2.2.2 环境配置
      3. 2.2.3 验证
      4. 2.2.4 卸载
        1. 2.2.4.1 真实卸载
        2. 2.2.4.2 只是删除控制面板中条目
  3. 3 OpenJDK 的安装
    1. 3.1 CentOS 环境
      1. 3.1.1 卸载已有
      2. 3.1.2 安装
      3. 3.1.3 配置
      4. 3.1.4 验证
    2. 3.2 Windows 环境
      1. 3.2.1 下载与安装
      2. 3.2.2 配置
      3. 3.2.3 验证

无论服务器中间件的部署,还是开发环境的搭建,都依赖于 JDK。本文以 CentOS(服务器情形) 和 Windows(开发环境)为例,总结了最热门的 Hotspot 和 OpenJDK 的 JDK 8 的安装。

作者:王克锋
出处:https://kefeng.wang/2016/10/13/jdk-installation/
版权:自由转载-非商用-非衍生-保持署名,转载请标明作者和出处。

1.版本的选择

进入 2018 年,越来越多的 Java 开源框架或开发库采用 Java 8,是时候彻底放弃 Java 7 了。
厂商方面:若无特别要求,可基于市场份额考虑,采用 Hotspot;有特别要求时,可采用 OpenJDK。

1.1 Java 版本历史

https://en.wikipedia.org/wiki/Java_version_history

  • 1996-01-23: JDK 1.0 发布;
  • 1997-02-19: JDK 1.1 发布;
  • 1998-12-08: J2SE 1.2 发布;
  • 2000-05-08: J2SE 1.3 发布;
  • 2002-02-06: J2SE 1.4 发布;
  • 2004-09-30: J2SE 5.0 发布;
  • 2006-12-11: Java 6 发布;
  • 2009年: 被 Oracle 收购;
  • 2011-07-28: Java 7 发布;
  • 2014-03-18: Java 8 发布;
  • 2017-09-21: Java 9 发布;

1.2 官方支持情况

http://www.oracle.com/technetwork/java/javase/eol-135779.html

  • Java 6: 2006-12-11 发布,2015年12月终止首要支持,2018年12月结束扩展支持;
  • Java 7: 2011-07-28 发布,2019年7月终止首要支持,2022年7月结束扩展支持;
  • Java 8: 2014-03-18 发布,2022年3月终止首要支持,2025年3月结束扩展支持;
  • Java 9: 2017-09-21 发布;

1.3 JDK 市场份额(2017-05-03 数据)

google “site:plumbr.io Java version vendor”
https://plumbr.io/blog/java/java-version-and-vendor-data-analyzed-2017-edition

  • JVM 供应商:2017 年市场份额,Hotspot(Oracle/SUN) 占 84%,OpenJDK(CentOS自带) 占 14%,其他占 2%,所以建议选择 Hotspot;
  • JDK 版本:2017 年市场份额,Java6(发布于2006-04)急降至5%,Java7(发布于2011-07)缓降至30%并将继续下降,Java8(发布于2014-03)稳升至65%并将继续上升。

2 HotSpot 的安装

2.1.CentOS 环境

2.1.1 卸载已有

1
2
3
rpm -qa | grep -E "^jdk|openjdk" ## 查看已安装的 HotSpot/OpenJDK
sudo yum -y remove jdk1.8-1.8.0_181-fcs.x86_64 ## 根据查询结果,卸载 HotSpot
sudo yum -y remove java-1.8.0-openjdk* ## 根据查询结果,卸载 OpenJDK

2.1.2 下载与安装

首页: http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
原链:http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm

1
2
3
4
## 参考: https://stackoverflow.com/questions/10268583/
wget --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm
sudo yum -y install jdk-8u181-linux-x64.rpm ## 安装 Hotspot

2.1.3 环境配置

1
2
3
4
5
## sudo vim /etc/profile ## 所有用户有效
## dirname `sudo find /usr/java -name src.zip` # 获取 JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
export PATH=$PATH:$JAVA_HOME/bin
## 环境变量 CLASSPATH 已废弃

2.1.4 参数配置

1
2
3
## sudo vim $JAVA_HOME/jre/lib/logging.properties ## 日志配置
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format = %1$tT,%1$tL %4$s [%3$s] - %5$s%6$s%n

2.1.5 验证

1
2
3
4
## java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2.2.Windows 环境

2.2.1 下载与安装

注意 JDK 位数,必须与 Java IDE 位数一致;
首页: http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
原链:http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-windows-x64.exe

2.2.2 环境配置

1
2
3
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_181
set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
## 环境变量 CLASSPATH 已废弃

2.2.3 验证

1
2
3
4
## java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2.2.4 卸载

通常,在控制面板中可成功卸载。
如果卸载 Java X Update YY (64-bit) 时会报错:找不到文件 C:\Program Files\Java\jdk1.X.0_YY\jre.msi,有两个解决办法:

2.2.4.1 真实卸载

手工删除注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment1.X 相关项,再次安装 jdk-XuYY-windows-x64.exe,之后就可以从控制面板中彻底卸载了。

然后删除下列目录(必须以管理员身份启动 cmd.exe 再执行):

1
2
3
4
5
rd/s/q "%ProgramFiles%\Java"
rd/s/q "%USERPROFILE%\AppData\Roaming\Sun\Java"
rd/s/q "%USERPROFILE%\AppData\LocalLow\Sun\Java"
rd/s/q "%USERPROFILE%\AppData\LocalLow\Oracle\Java"
rd/s/q "%USERPROFILE%\AppData\Local\VirtualStore\Program Files\Java"

2.2.4.2 只是删除控制面板中条目

资料:卸载 Java 之后,如何删除在 Windows 的“卸载/删除程序”中列出的条目?

3 OpenJDK 的安装

3.1 CentOS 环境

3.1.1 卸载已有

1
2
3
rpm -qa | grep -E "^jdk|openjdk" ## 查看已安装的 HotSpot/OpenJDK
sudo yum -y remove jdk1.8-1.8.0_181-fcs.x86_64 ## 根据查询结果,卸载 HotSpot
sudo yum -y remove java-1.8.0-openjdk* ## 根据查询结果,卸载 OpenJDK

3.1.2 安装

1
2
3
yum search java-1.8.0-openjdk ## 查看可安装 OpenJDK
yum -y install java-1.8.0-openjdk ## 安装 JRE
yum -y install java-1.8.0-openjdk-devel ## 安装 JDK

3.1.3 配置

1
2
3
## sudo vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin

3.1.4 验证

1
2
3
4
## java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

3.2 Windows 环境

3.2.1 下载与安装

下载时需要登录,可使用 Github 帐号。可采用绿色版本,解压即可。
索引页:https://developers.redhat.com/products/openjdk/download/
绿色版:https://developers.redhat.com/download-manager/file/java-1.8.0-openjdk-1.8.0.181-1.b13.redhat.windows.x86_64.zip
安装版:https://developers.redhat.com/download-manager/file/java-1.8.0-openjdk-1.8.0.181-1.b13.redhat.windows.x86_64.msi

3.2.2 配置

1
2
set JAVA_HOME=E:\Software\OpenJDK\java-1.8.0-openjdk-1.8.0.181-1.b13.redhat.windows.x86_64
set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

3.2.3 验证

1
2
3
4
## java -version
openjdk version "1.8.0_181-1-redhat"
OpenJDK Runtime Environment (build 1.8.0_181-1-redhat-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
文章目录
  1. 1.版本的选择
    1. 1.1 Java 版本历史
    2. 1.2 官方支持情况
    3. 1.3 JDK 市场份额(2017-05-03 数据)
  2. 2 HotSpot 的安装
    1. 2.1.CentOS 环境
      1. 2.1.1 卸载已有
      2. 2.1.2 下载与安装
      3. 2.1.3 环境配置
      4. 2.1.4 参数配置
      5. 2.1.5 验证
    2. 2.2.Windows 环境
      1. 2.2.1 下载与安装
      2. 2.2.2 环境配置
      3. 2.2.3 验证
      4. 2.2.4 卸载
        1. 2.2.4.1 真实卸载
        2. 2.2.4.2 只是删除控制面板中条目
  3. 3 OpenJDK 的安装
    1. 3.1 CentOS 环境
      1. 3.1.1 卸载已有
      2. 3.1.2 安装
      3. 3.1.3 配置
      4. 3.1.4 验证
    2. 3.2 Windows 环境
      1. 3.2.1 下载与安装
      2. 3.2.2 配置
      3. 3.2.3 验证