Java系列文章(一)——JDK 安装

unimof 2021年02月07日 251次浏览

1. JDK 版本历史 和 大事记

1.1 版本历史

版本发布时间LTS
JDK1.01996年1月
JDK1.11997年2月18日
JDK1.32000年5月8日
JDK1.42000年5月29日
JDK1.52004年9月30日
JDK1.62006年12月
Java SE 72011年7月28日
Java SE 82014年3月18日LTS
Java SE 92017年9月21日
Java SE 102018年3月21日
Java SE 112018年9月25日LTS
Java SE 122019年3月20日

目前最新的是:Java SE 15

1.2 大事记

时间事件
1990年在 Sun 计算机公司,由 Patrick Naughton、MikeSheridan 及 James Gosling 领导的小组 Green Team,开发出了全新的程序语言,命名为 Oak,就是后来的 Java
1995年Sun 正式发布 Java 和 HotJava 产品, Java语言正式亮相
1997年Java 社区成员超过十万
1998年JDK 1.2 发布,同时,Sun 发布了 JSP/Servlet、EJB规范;同时 Sun 决定将 JDK 分为 J2EE、J2SE和J2ME,这表明 Java 将同时向企业应用、桌面应用和移动设备应用三大领域挺进
2000年JDK 1.3 发布,Hotsport JVM成为了默认的 Java 虚拟机
2002年JDK 1.4 发布,Classic虚拟机退出历史舞台
2003年Java平台的Scala正式发布,同年Groovy也加入了Java阵营
2004年JDK 1.5 发布,同时更名为 JavaSE 5.0
2006年JDK 1.6 发布,同年,Java 开源,并建立了 OpenJDK,Hotspot 也顺理成章的成为了 OpenJDK 的默认虚拟机
2008年Oracle 收购 BEA,得到了 JRockit 虚拟机
2009年Twitter 宣布把后台大部分程序,从Ruby迁移到Scala,这是Java平台的又一次大规模应用
2010年Oracle 收购 Sun,获得 Java 商标和最具价值的 Hotspot 虚拟机,此时,Oracle 成功获得了市场占有率最高的两款 Java 虚拟机,并计划后续对其进行整合
2011年JDK 1.7发布
2018年Android的Java侵权案判决,Google赔偿Oracle计88亿美元。同年,Oracle宣告JavagE成为历史名词JDBC、JMS、Servlet赠予Eclipse基金会。同年,JDK11发布,LTS版本的JDK,发布革命性的ZGC,调整JDK授权许可

2. Linux 安装

2.1 第一步:卸载系统自带的JDK

用 rpm -qa|grep java 命令查询系统自带的 OpenJDK,然后依次使用 rpm -e 命令进行卸载:

$ rpm -qa|grep java
libvirt-java-devel-0.4.9-4.el7.noarch
tzdata-java-2017b-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.131-3.b12.el7_3.x86_64
java-1.7.0-openjdk-1.7.0.141-2.6.10.1.el7_3.x86_64
libvirt-java-0.4.9-4.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.1.el7_3.x86_64
java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64
python-javapackages-3.4.1-11.el7.noarch

$ rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.1.el7_3.x86_64

2.2 RPM 安装JDK1.8

$ rpm -ivh jdk-8u172-linux-x64.rpm 

2.3 压缩包安装

$ 

2.4 配置环境变量

$ vim /etc/profile

# 末尾追加以下内容
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3. Windows 安装

3.1 exe安装包安装

  • 启动安装包,安装完成即可,复制安装路径,后续配置环境变量使用

3.2 压缩包解压安装

  • 将压缩包解压到任意目录,复制安装路径,后续配置环境变量使用

3.3 配置环境变量

在环境变量管理器中,添加如下内容:
| 环境变量名 | 值 |
|---|---|
| JAVA_HOME | /path/to/Java(C:\java1_8) |
| CLASSPATH | .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar |
| Path| %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; |

注意:Path环境变量系统自带,只需要将值在最前加入保存即可

5. 验证

$ java -version 
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

能正常打印出 Java 版本号,说明安装成功

6. Q & A

6.1 为什么现在很大一部分程序还是在用 JDK 1.8?

调查结果显示,绝大多数开发人员的主要应用程序中使用的还是 Java 8

image.png

那么,什么现在很大一部分程序还是在用 JDK 1.8?这其中的原因是多方面的,主要还是Java8之后的版本,Oracle 更改了更新节奏,改变了LTS版本支持的策略,导致企业在升级方面存在顾虑,在安全和稳定性方面优先的情况下,对升级比较慎重;
另外一个重要方面,Oracle在2017年发布声明,之后所有的LTS版本都是有偿使用,这打击了很大一部分中小企业的升级积极性,虽然Oracle同时提供了商业版JDK 和 OpenJDK两种选择,但是对用户来说也比较鸡肋;
最后可能就是JDK 8不管是在语法层面,还是在生态层面,都经过了长期的实战考验,比较成熟和稳定,而之后的 JDK 并没有太大的突破性创新,所以也没有特别大的吸引力促使用户升级。

6.2 OpenJDK 和 OracleJDK是什么关系?

首先,OpenJDK 是 Sun在开源Java 之后就已经存在
之后的JDK 版本,都是在OpenJDK基础上进行开发和发布的
在2017年,Oracle 宣布修改Java版本策略后,同时提供两种SDK:商业版和OpenJDK,商业版付费使用,Oracle提供技术支持;OpenJDK由社区提供支持。

从技术上看,两者的差别很小,OpenJDK和Oracle JDK的代码几乎相同,但是Oracle JDK有更多的类和一些bug修复,但是虚拟机本身的代码实际上是不同的,而对于库,OpenJDK倾向于使用开放库,而Oracle则倾向于使用封闭库。

这也是为什么目前为止,大部分企业和程序员,都还在使用 JDK8 的原因。