一、JDK
1、什么是JDK
JDK(Java Development Kit,Java 开发工具包)是用于开发 Java 应用程序的核心工具包。它包含了编写、编译、调试和运行 Java 程序所需的一切工具和库。JDK 是每个 Java 开发者必备的工具。
2、JDK 主要组件
JDK主要包含JRE和一些开发工具。
1)Java 运行时环境(Java Runtime Environment, JRE):
JRE 是运行 Java 应用程序所需的环境,包括 JVM、核心类库和其他支持文件。JRE 是 JDK 的一个子集,JDK 包含了 JRE。
实际上安装好JDK后,对应版本的JRE也就被安装了,JRE是包含在JDK中的(下图是jdk中的文件夹,可以发现是有jre的,这里是jdk8,对于更高版本的 jdk 中就没有 jre 了,而是使用jlink来根据自己的需求,创建一个更小的运行时环境):
JRE主要包含JVM和核心类库:
1.Java 虚拟机(JVM):
JVM是包含在JRE中的,JVM 是运行 Java 字节码的虚拟机。它负责加载、解释和执行字节码文件。JVM 使得 Java 具有跨平台特性。
2.核心类库:
JDK 中的 JRE 包含了大量预定义的类库,这些类库提供了丰富的功能,包括数据结构、网络编程、文件 I/O、图形用户界面(GUI)等。这些类库极大地简化了 Java 开发。
2)开发工具:
JDK 提供了一系列开发工具(命令行工具),帮助开发者编写和调试 Java 程序。这些工具包括但不限于:
javac
:编译器,用于将 Java 源文件编译为字节码。java
:Java 应用程序启动器,用于运行编译后的 Java 程序。javadoc
:文档生成器,用于根据源代码中的注释生成 API 文档。jdb
:Java 调试器,用于调试 Java 程序。jar
:用于创建、管理和解压缩 JAR 文件(Java ARchive),这些文件通常包含多个类和关联的资源。jconsole
和jvisualvm
:用于监视和管理 Java 应用程序的工具。
我们可以在已安装的JDK目录中查看这些开发工具,这些开发工具一般在 jdk 的 bin 目录下:
可以看到这些开发工具都是以可执行文件的形式存在的。
3、对于JDK、JRE和JVM三者的关系
图示为三者的关系:
JDK
│
├── JRE
│ ├── JVM
│ ├── 核心类库
│ └── 其他组件
│
└── 开发工具├── javac(编译器)├── jdb(调试器)├── java(程序启动器)├── javadoc(文档生成器)└── jar(打包工具)
二、JDK安装和环境变量配置
因为各种原因,JDK8和JDK11这两个版本是比较流行的。
1、JDK安装
1)下载链接
可以到oracle官网下载各种版本的JDK。
下面列出JDK8和JDK11两个版本的JDK:
JDK8:
https://www.oracle.com/cn/java/technologies/downloads/#java8
JDK11:
https://www.oracle.com/cn/java/technologies/downloads/#java11
不过需要登陆,比较麻烦。
2)详细教程
Windows版本的jdk8一般有这两种版本:
两个都是安装向导,第一个是对于32位Windows的,第二个是对于64位Windows的。
Windows版本的jdk11一般有这两种安装方式(这里好像只有x64版本的):
第一种是安装向导,下载后点击运行,然后就可已安装jdk了,界面就像下面这样,可以更改路径:
对于安装向导类型的,在安装完成后,安装向导就可以删除了。
第二种是压缩包,下载后直接解压就是jdk。
2)配置环境变量
在进行好安装 jdk 后,我们还是不能使用 jdk 来对我们的代码进行编译和运行的,我们还要做一个事情就是配置环境变量。
一般情况下例如javac等指令,在控制台使用时,系统会在当前的路径下寻找这个指令对应的可执行程序,如果没有找到,则会到配置的环境变量PATH中来寻找,如果还没有找到,则会报错。
1、鼠标右键点击此电脑,然后点击属性:
然后点击高级系统设置:
然后点击环境变量:
2、在用户变量中点击新建:
3、点击用户变量中的Path变量,进行编辑:
然后再Path中新增一个
%JAVA_HOME%\bin
这样就完成了环境变量配置,然后我们可以在桌面打开控制台,然后使用下面的指令,以测试用户变量是否完成配置:
java -version
如果与你安装的jdk版本相同,则完成配置。
3)小插曲
我在配置jdk8的变量之前,下载了jdk11,然后就开始了jdk8的环境变量的配置然后就出了一些小问题。最后找到原因,原来是jdk11安装的时候会自动在系统变量的Path中加入:
导致我的jdk8配置一直有问题,由于我的jdk8的变量是放在用户环境变量Path中的,对于Windows,系统的Path变量的优先级是高于用户变量中的Path的。这里可以把这个变量删除,然后自己配置。
将环境变量配置完成后就可已快乐的coding了。