首先电脑上可以同时安装多个版本的 JDK(Java Development Kit),因为不同的应用程序可能需要不同 Java 版本的支持,安装多个 JDK 版本并不会导致冲突,只要设置好即可,在不同的情况下切换不同的jdk版本保证程序正常工作
很多程序jdk8 已经不支持,所以下载更高版本的jdk是很有必要的,但是jdk8 又没有必要删除,拥有多个JDK版本也就更加方便,可以根据不同的场景切换不同的JDK版本保证正常工作
JDK下载:
jdk下载可以去官网或者找一下网盘分享,很容易获取,都是免费的,只是官网下载页面有时候会没反应
官网地址 Java Downloads | Oracle 中国
最上面是最新版本的jdk,下拉即可找到经典的比较稳定的jdk 8 11 17 版本,选择windows下载即可
JDK版本切换
切换jdk版本是很简单的,只需要在环境变量设置要使用的版本即可
只是有些设置不到位会导致切换没生效,下面会介绍
我主机里有三个JDK版本 jdk8 jdk11 jdk17
先在cmd命令行输入java -version 和 javac -version 查看版本
java -version
显示的是 Java 运行时环境的版本信息,包括 JVM 和 JRE 的详细版本javac -version
显示的是 Java 编译器的版本信息
输入这两个是因为有时候java 和 javac的版本会不一致导致一些问题,所以检查一下
我当前使用的是jdk11,假如要切换到jdk17, 打开 设置 - 系统 -系统信息 - 高级系统设置 - 环境变量
选择系统变量,jdk的环境变量名是 JAVA_HOME 变量值就是下载的jdk版本路径,我的是E:\jdk11
只需要把jdk11的目录换成jdk17 目录即可 我这里是E:\jdk17
验证一下,重新打开一次cmd命令行
同理,我想从jdk17 切换成jdk8 一样的操作
设置没有生效的解决方法 (改变系统变量中JAVA_HOME的顺序)
如果改了环境变量依然没有生效,排除jdk目录设置错误的情况,很可能还是环境变量设置的问题
可以先找到自己主机中跟jdk环境变量有关的内容
以我最初设置失败的环境变量为例,这是我用户变量中PATH变量的内容,有一个jdk的bin路径
系统变量中除了JAVA_HOME 之外,也有一个PATH变量
里面最上面有两个java的路径,是java的系统变量,所以我的主机总共有三个跟jdk有关的环境变量
这种情况下如果从jdk17 切换到 jdk11 或者 jdk8 就不会生效
例如这里我要从jdk17 切换为 jdk8 修改系统变量中的JAVA_HOME 之后,重新打开命令行验证发现失败了
命令行输入 where java
可以看到确实变成了jdk8的目录,但是这个路径排在了第二位,导致没有使用这个版本,而是使用了上面第一个版本,也就是上面图片中系统变量中PATH变量的第一个路径
解决方法就是在系统变量的PATH变量中把JDK环境变量放到第一位,保证优先级高于上面的第一个路径
如果PATH中没有JDK的环境变量,像我上面演示的这样,只需新建一个 %JAVA_HOME%\bin 即可
然后上移到第一行
再输入where java 看到已经改变了顺序
到这就解决了,以后再切换的时候就可以随便切换了