JDK版本说明
JDK下载首选的方式是进入Oracle官网(Oracle官方网站链接)
JDK有部分版本可能会涉及收费问题,以下是各个版本的收费说明:
JDK8 之前版本,仍然免费。JDK8 免费版本到 8u202,从 8u211版本开始收费。JDK9、JDK10,全版本免费。JDK11,免费版本到 11.0.2,从 11.0.3 版本开始商用收费。JDK12、JDK13、JDK14、JDK15、JDK16,全版本商用收费。JDK17、JDK18、JDK19、JDK20,全版本(二进制版本)免费。以上收费信息情况统计参考文章 JDK收费的各个版本(记录一下)
大部分人下载的都是JDK8版本的免费版,在Oracle官网可见不同版本已经被区分出来了,上图中圈出的便为JDK8的免费版本下载入口,即免费版本8u202及其之前的版本,均可免费使用。
假设选定我们要下载的大版本是JDK8,那么JDK8中各个小版本又有什么区别呢?
小版本号中包括了奇数版本和偶数版本,关于二者之间的区别可参考文章:jdk小版本号奇数与偶数的区别
总结来说,奇数版本比偶数版本更好,而在JDK8的免费版本中,最新的一个奇数版本就是8u201,因此针对JDK8的下载来说,8u201版本是较好的选择。
JDK下载安装
由上述版本的描述中,可以选择自己需要的版本进行下载安装。
下面以JDK8u201版本的安装为例,windows系统可以在以下链接进行下载:
但由于官网下载连接的国外网站,下载速度可能会非常慢,在此可以尝试使用国内的镜像网站来下载,比如华为的镜像站:Index of java-local/jdk
下载完成后直接运行安装,可以自行选择所需安装的地址:
JDK安装完成后可能还会弹出JRE的安装,JRE也就是Java的运行环境,但是在JDK中已经包括了JRE了,所以JRE的安装可以让他直接进行默认操作也可以直接跳过,不会影响Java环境的使用。
安装成功后可以去安装的地址查看JDK的文件目录:
其中一些主要的文件功能如下:
bin 包含了用于编译、运行和调试Java程序的可执行文件,例如javac(Java编译器)、java(Java运行时环境)和jdb(Java调试器)等。jre 包含了Java运行时环境(JRE),用于在计算机上运行Java程序。include 如果安装了C/C++头文件,这个目录包含了用于Java本地接口编程(JNI)的头文件。lib 包含了JDK的类库文件,其中包括用于支持Java标准库和其他扩展库的类文件。以上功能解释来源ChatGPT。
JDK环境配置
在JDK安装完成后还需要配置环境变量才能够真正完成使用。
首先在系统中搜索环境变量的配置
进入编辑系统环境变量的页面
进入后点击环境变量即可进行编辑
在系统变量中新增一个JAVA_HOME变量,其中路径为JDK的安装路径
JAVA_HOME变量新增完成后,在系统变量列表中能够显示出来,下一步需要配置系统变量中的Path,双击进入即可
Path变量中的javapath项是JDK安装时自动添加的,但实际使用时并不会用到,所以可以将这一项删除
随后在Path中添加如下两项
添加完成后点击确定即可完成配置,此时打开命令行窗口可以进行是否配置成功的测试:
分别在命令行输入java、javac、java -version后,均有如上的内容出现,说明JDK环境配置已经完成。
下面解释一下为什么要添加这些配置,这些步骤的作用是什么:
当未配置环境变量时,在命令行输入上述命令后会出现提示“不是内部或外部命令,也不是可运行的程序”,这说明JDK在系统默认路径或自己指定的路径安装完成后,并不意味着能够直接在系统执行JDK中的指令,因为系统并不知道该去什么地方执行他们。所以配置环境变量的作用就是给系统指一条路,让系统知道这条指令该去什么位置执行。
具体而言,当系统收到一条指令时,会去Path变量中至上而下的逐一查找,变量中的每一项都指向了一个路径,该路径下会有一些程序供指令去执行。所以我们在Path变量中添加的%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin两项分别指向了JDK和JRE的可执行文件路径,当收到如javac这样的指令时,系统开始去Path中匹配,匹配到%JAVA_HOME%\bin项后就进入到了JDK的可执行文件夹,即bin文件夹,其中就有javac.exe这个可执行文件,从而匹配成功执行。
而在系统变量中添加JAVA_HOME这一项的原因,主要有下面几点:
为在Path中添加路径服务,JAVA_HOME对应了JDK的安装路径,直接用%JAVA_HOME%引用可以不用多次写出JDK的安装路径。在JDK路径发生改变时,设置一个这样的变量,可以不用去修改Path中的内容,直接在系统变量中修改JAVA_HOME变量即可,从而简化操作并减少不必要的错误。在某些地方需要获取JDK安装路径时,通常都会直接使用JAVA_HOME这个变量来获取,如果不设置JAVA_HOME变量的话可能会出现获取失败的情况。