JDK是[Java](https://baike.baidu.com/item/Java/85979)语言的[软件开发工具包](https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E5%85%B7%E5%8C%85/10418833),主要用于[移动设备](https://baike.baidu.com/item/%E7%A7%BB%E5%8A%A8%E8%AE%BE%E5%A4%87/9157757)、[嵌入式设备](https://baike.baidu.com/item/%E5%B5%8C%E5%85%A5%E5%BC%8F%E8%AE%BE%E5%A4%87/10055189)上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 JDK = Java soft Development Kit Java软件开发工具包。在一些其它语言开发的介绍中,我们还可以看到SDK,就是这里的Soft Development Kit。比如进行手机开发时我们需要的Android SDK,便是指安卓软件开发工具包。 汽车厂商为了更加高效的制造汽车,会开发更高端的平台,比如2019年的迈腾汽车使用的是MQB平台,除此以外还会电力、材料、人工等辅助的资源。新的车型设计后会进行小范围的生产,然后在测试场里或者实际的道路上进行测试,发现问题后分析问题并进行修正。最后才是量产汽车。 在JAVA开发的世界里,我们把测试场和实际的道路称为JRE,即JAVA运行环境。汽车跑起来需要公路这个`汽车运行环境`,JAVA跑起来则需要JRE这个JAVA运行环境(Java Runtime Environment)。汽车在生产的过程中,需要MQB及一些辅助资源。JAVA程序在生产的过程中,也是需要JAVA及一些辅助的资源,而这就是Kit。 所以:我们做为消费者,买了汽车想使用的话,那么就是需要有汽车运行环境公路;如果买了JAVA软件想使用的话,就需要有JAVA软件运行环境--JRE。如果我们做为生产者想生产汽车,除了要有汽车运行环境外,还需要有生产平台及辅助资源;想生产JAVA程序,除了有JRE以外,则还需要一些工具包,这合并称为JDK。 ![](https://img.kancloud.cn/03/0f/030fe41d5d20b1dce117559a7b104355_340x270.png) 如上图所示:JRE是JDK的一部分,如果想开发JAVA程序,则必须有JDK。如果想运行JAVA程序,就必须有JRE。 ***** 有人说2019年以后JAVA不在免费了,其实这个是误区。JAVA依旧免费,只是:1. 2019年4月以后对JAVA8的更新,不在免费提供了。2. JDK11时,免费用户需要使用OPENJDK。对我们的直接影响是:下载时需要进行登录了,而想登录成功则依赖于良好的网络。我们改用以下下载地址:[https://github.com/frekele/oracle-java/releases/tag/8u172-b11](https://github.com/frekele/oracle-java/releases/tag/8u172-b11) > 该版本并不是必须的,但使用该版本该将在最大程度上与教程的保持一致,这可能会规避一些不必要的麻烦。其它版本下载地址:[https://github.com/frekele/oracle-java/releases](https://github.com/frekele/oracle-java/releases)。同时阿里巴巴在OPENJDK8的基础上,开发了并开源了[dragonwell8](https://github.com/alibaba/dragonwell8),有兴趣的话也可以了解一下。 ## MACOS 如果你已经安装过其它版本的JDK了,可以参考[https://segmentfault.com/a/1190000020177762#articleHeader5](https://segmentfault.com/a/1190000020177762#articleHeader5)进行多版本的安装与切换。 ### 下载 在mac上,我们可以使用`Homebrew`来安装`jdk8`,`Homebrew`是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能( 以下操作均在终端进行 )。 首先更新`Homebrew`软件仓库。 ``` brew tap caskroom/versions ``` 下载`openjdk8`: ``` brew cask install adoptopenjdk/openjdk/adoptopenjdk8 ``` ### 验证 ``` java -version ``` ![](https://img.kancloud.cn/55/6b/556b223645c47ae0cfc60b147a3b87dd_1000x622.png) ## ubuntu ### 下载 选择适合自己电脑的版本,点击下载 ![](https://img.kancloud.cn/7d/c9/7dc994ad5d8d5823af67f3ee06f03179_1322x353.png) ### 解压 进入下载目录解压,可以使用右键,选择提取到,之后选择jdk安装的位置;也可以使用命令进行解压,在命令行中进入jdk的存放目录,输入解压命令: `sudo tar -zxvf 文件名-C 解压到的目录(不写则为当前目录)` ![](https://img.kancloud.cn/f4/17/f417ca0a9180337d735bab9123922da5_725x206.png) ### 设置环境变量 >[success] 本文的vim命令都是在输入法为英文且小写模式下。 在命令行中运行 `sudo vim ~/.bashrc` (在vim中按下`i`进入插入模式) 在文件末尾追加下面内容(`shift + g`可以直接到文末 ): ``` #set jdk environment export JAVA_HOME=/media/liyiheng/1/opt/jdk1.8.0_172  ## 这里要注意目录要换成自己解压的jdk 目录, 这句话需要删除 export JRE_HOME=${JAVA_HOME}/jre   export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib   export PATH=${JAVA_HOME}/bin:$PATH ``` 按下`esc`,输入:`:wq`保存; 使环境变量马上生效: `source ~/.bashrc` ### 验证 ![](https://img.kancloud.cn/8b/09/8b0988ef5daccc25949a35fe41821c8d_600x104.png) ### 不适合这里的一个简单方法 当以后不需要和本教程版本保持同步时,可以使用一条简单的命令来安装openjdk `sudo apt install openjdk-8-jdk ` 不过现在还是希望你能和本教材的jdk版本保持一致。 ## windows ### 下载 点击下载链接:[https://github.com/frekele/oracle-java/releases/tag/8u172-b11](https://github.com/frekele/oracle-java/releases/tag/8u172-b11),如果你的电脑是32位,点击`jdk-8u172-windows-i586.exe`,如果你的电脑是64位,点击`jdk-8u172-windows-x64.exe`。 ![](https://img.kancloud.cn/fd/ed/fdedce1046147a28f917e390789b5c90_1920x969.png) ### 安装 下载完成后,点击下载程序进行`jdk8`的安装 ![](https://img.kancloud.cn/99/85/998554da3bf724e57f0cab6e95fe3f14_1047x574.png) ![](https://img.kancloud.cn/18/40/184064ccc409f772bd9d8c3315b3b55f_504x383.png) 记住这个`jdk8`的安装目录: ![](https://img.kancloud.cn/50/b1/50b166aab558b1f9d1952b8d7f8b6f9e_504x383.png) 选择`jre`安装目录(建议使用默认安装目录),点击下一步: ![](https://img.kancloud.cn/70/3c/703c80cb06b414f09ece6dfcec597b72_506x383.png) ![](https://img.kancloud.cn/6b/16/6b16db2236a7460b8105453596bc5873_504x383.png) 配置`jdk8`环境变量: 为了使用`jdk`的命令,我们需要配置`JAVA_HOME`,`CLASS_PATH`,`PATH`这几个环境变量: 打开文件资源管理器,右键此电脑,点击属性: ![](https://img.kancloud.cn/d9/4d/d94d233dba89b6ae0e5b677c0d723c17_775x559.png) 点击高级系统设置,点击环境变量: ![](https://img.kancloud.cn/33/06/33068a3834203ec5419caf2985d46c54_1510x771.png) 如果存在`JAVA_HOME`变量,则选中,点击编辑。否则,点击新建: ![](https://img.kancloud.cn/2c/7c/2c7c65a464294fd95751f21f239cf30c_632x666.png) 变量名输入`JAVA_HOME`,点击浏览目录选择刚刚`jdk8`的安装路径,确定: ![](https://img.kancloud.cn/ff/4b/ff4b81d76e343e0719619ff5e37c89d8_667x190.png) 如果存在`CLASSPATH`则选中,编辑。否则,点击新建: ``` 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; ``` ![](https://img.kancloud.cn/07/42/074298fb65a246193afe471db81b254f_923x567.png) 找到PATH环境变量,点击编辑: ![](https://img.kancloud.cn/a0/b7/a0b7b82aa48b699ffb2799d9e5ef2bac_632x666.png) 点击新建,添加: ``` %JAVA_HOME%\bin ``` ![](https://img.kancloud.cn/9d/00/9d0092eda8d7e2c856aa62fd68d24f6d_533x562.png) 点击确定,到此,环境变量就全都配置完成了。 ### 验证 打开终端,输入 ``` C:\User\98173> java -version ``` ![](https://img.kancloud.cn/c8/6b/c86b08c95aac5441b2e84666a2f555bd_993x519.png) 到此,`jdk8`已经安装成功了。