什么是 JDK?

JDK 是 Java Development ToolKit 的简称,也就是 Java 开发工具包。JDK 是整个 Java 的核心,包括 Java 运行环境(Java Runtime Envirnment,简称 JRE),Java 工具(比如 javac、java、javap 等等),以及 Java 基础类库(比如 rt.jar)。

最主流的 JDK 是 Oracle 公司发布的 JDK,除了 Oracle JDK(商业化,更稳定)之外,还有很多公司和组织开发了属于自己的 JDK,比较有名的有 IBM JDK(更适合 IBM) 和 OpenJDK(开源的)。每个 JDK 都有自己的优缺点,我们开发者只需要掌握 Oracle JDK 就好了。

JDK 安装好后,会有以下几个重要的文件夹和文件,稍微解释一下。

1)bin:包含了最主要的是编译器(javac.exe)

2)include:Java 和 JVM 交互用的头文件

3)lib:类库

4)jre:Java 运行环境

JDK 有三种类型。

1)J2SE:Standard Edition,标准版,是我们通常用的一个版本,从 JDK 5.0 开始,改名为 Java SE。

2)J2EE:Enterprise Edition,企业版,从 JDK 5.0 开始,改名为 Java EE。

3)J2ME:Micro Edition,主要应用于移动设备、嵌入式设备,从 JDK 5.0 开始,改名为 Java ME。

不同 JDK 版本之间的区别?

下图总结了 JDK从第一个发布版本到现在所有的版本信息:(JAVA 最开始属于 Sun 公司,后来被 Oracle 收购)

2009 年 4月 20 日,Oracle 公司以每股9.50美元,总额 74亿美金收购 Sun公司,从此 Sun公司退出历史舞台,Java 也正式进入 Oracle的怀抱,在 Oracle公司,Java迎来了自己的高光时刻。下图为 Java 在 Oracle 公司发布的版本:

从上图可以看出,最开始 Sun 公司是以 JDK(Java SE Development Kits,Java 开发包)命名,从1.2 版本起,修改成以 J2SE(Java 2 Platform, Standard Edition)命名,从 Java SE 6后 Java 不再带有 “2” 这个号码,后面的版本全部以 Java SE + 数字版本命名。

尽管在 Java发展历史上出现过好多名词,比如 J2SE,J2ME,J2EE,但还是可以笼统的认为:Java = Java SE = JDK。

针对几个长期维护版本,列举了其重要功能升级:

JDK 8

  • Lambda 和 函数式接口
  • 方法推导
  • 接口默认方法和静态方法
  • 重复注解
  • 类型注解
  • 类型推断
  • Optional
  • Stream
  • 日期时间 API
  • Base64 支持
  • 并行数组 ParallelSort

JDK 11

  • 基于嵌套的访问控制
  • 标准 HTTP Client 升级
  • Epsilon:低开销垃圾回收器
  • 简化启动单个源代码文件的方法
  • 用于 Lambda 参数的局部变量语法
  • 低开销的 Heap Profiling
  • 支持 TLS 1.3 协议
  • ZGC:可伸缩低延迟垃圾收集器
  • 飞行记录器
  • 动态类文件常量

JDK 17

  • 语言特性增强
  • 密封的类和接口(正式版)
  • 工具库的更新
  • JEP 306:恢复始终严格的浮点语义
  • JEP 356:增强的伪随机数生成器
  • JEP 382:新的macOS渲染管道
  • 新的平台支持
  • JEP 391:支持macOS AArch64
  • 旧功能的删除和弃用
  • JEP 398:弃用 Applet API
  • JEP 407:删除 RMI 激活
  • JEP 410:删除实验性 AOT 和 JIT 编译器
  • JEP 411:弃用安全管理器以进行删除
  • 新功能的预览和孵化API
  • JEP 406:新增switch模式匹配(预览版)
  • JEP 412:外部函数和内存api (第一轮孵化)
  • JEP 414:Vector API(第二轮孵化)
  • JEP 389:外部链接器 API(孵化器)
  • JEP 393:外部存储器访问 API(第三次孵化)

如何选择版本
通过上面的介绍可以看出,JDK 8,JDK 11,JDK 17 是 3 个长期维护的版本,但因为 JDK 17 是 2021 年发布的 GA 版本,所以,生产上尽量选择 JDK 8 或者 JDK 11。(注:口中说的Java8、JDK8、JDK1.8都是同一个东西)

在 JDK版本的选择上,尽量选择长期维护的版本,不要使用最新版本的。因为新版本的 JDK,新功能没有经过生产环境的验证,如果想成为第一个吃螃蟹的人,一定要三思能否 hold 得住。

JDK 8 的安装教程

1. 下载安装包

官网下载: Java Archive

注: 官网下载需要注册 Oracle 邮箱

2. 安装

双击:
在这里插入图片描述

更改 jdk 安装位置

更改 jre 安装位置

3. 环境变量配置

高级系统设置, 选择“环境变量”

环境变量 系统变量设置 2 项属性,JAVA_HOME,PATH,若已存在则点击 “编辑”,不存在则点击"新建"。
注意:JDK 8 只需要配置 PATH 即可,CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 可以不进行配置。JAVA_HOME 配置主要是 Tomcat 要求。

JAVA_HOME

新建 JAVA_HOME 变量,变量值为JDK安装目录。

PATH

编辑 Path 系统变量,新建值 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

4. 验证JDK是否安装成功

Win+R 快捷键,输入cmd进入命令提示符操作界面。

查看Java版本
输入 java -version ,查看 Java 版本,出现下图信息表示Java安装成功。
在这里插入图片描述

验证环境变量是否配置成功
输入 javac,出现下图信息表示Java环境变量配置成功。
在这里插入图片描述

多个JDK版本切换

1. JDK 下载

JDK17下载: https://www.oracle.com/java/technologies/downloads/#java17

在这里插入图片描述

在这里插入图片描述

2. 安装

以前JDK怎么安装,其他就怎么安装
在这里插入图片描述

3. 配置

1、删Path变量
在安装JDK的时候,JDK会给我们的Path变量添加变量

列如

  • C:\Program Files\Common Files\Oracle\Java\javapath
  • C:\Program Files (x86)\Common Files\Oracle\Java\javapath

安装一次,就会生成一条这样的变量,那就把他们都删掉
防止咱们切换失败

2、给Path添加变量

%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin

3、创建系统变量

变量名: CLASSPATH (这步似乎不操作也可以)

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

在这里插入图片描述

3.1、创建 JAVA_HOME

变量名:JAVA_HOME
变量值:%JAVA_HOME17% 或者 %JAVA_HOME8%

修改此处变量值中的数字来达到启用所对应的jdk

在这里插入图片描述

3.2、创建 JAVA_HOME17

变量名:JAVA_HOME17
变量值:D:\Program Files\Java\jdk-17 自己安装的jdk17路径

3.3、创建 JAVA_HOME8

变量名:JAVA_HOME8
变量值:D:\Program Files\Java\jdk-1.8 自己安装的jdk1.8路径

在这里插入图片描述

4. 切换版本测试

打开环境变量

修改JAVA_HOME 变量:
使用JDK17 :JAVA_HOME17
使用JDK1.8: JAVA_HOME8

java -version

在这里插入图片描述

References

什么是 JDK?

jdk8的安装教程保姆级,超详细(自带下载链接)

多个JDK版本可以吗:JDK17、JDK19、JDK1.8轻松切换(无坑版)小白也可以看懂

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐