文章目录
一、JDK生效原理
想必大家都在为如何流畅的切换JDK版本问题而来,那么在此篇文章开始之前,首先我们来思考一下这样一个问题:系统是如何使得我们安装的JDK生效的?
聪明的你一定想到了,是的,要想使得我们安装的JDK生效,我们需要配置它的环境变量,让系统知道我们已经安装了JDK并且已经可以使用。
我们大家一般配置环境变量都是先新建一个系统变量JAVA_HOME,而JAVA_HOME所表示的路径为我们安装jdk的路径(不包含bin目录)即:
之后我们会在Path系统变量中新建环境变量%JAVA_HOME%\bin即:
那么这些环境变量和JDK生效有什么关系呢?我们来看bin目录下到底有什么内容:
jdk的bin目录:我们看到了熟悉的字眼,没错,就是java和javac命令,它们就是我们每次配置完JDK验证JDK成功的命令,其中javac命令还可以使我们编写的Java文件编译成字节码文件(.class文件)
jdk自带的jre的bin目录:
那么计算机如何才能准确的调用这些命令呢?当然是通过Path环境变量来进行查找,Path环境变量的值是一系列路径,Windows操作系统将在此一系列路径中查找命令,若能找到则可执行这些命令,即可以说Windows是通过JAVA_HOME来找到JDK和JRE的,并且当前JDK8以及JDK8之后已经集成了JRE,因此我们在配置JRE时无需再配置CLASSPATH以及配置%JAVA_HOME%\jre\bin环境变量。
那说了这么多,这些和JDK版本的切换有什么关系呢?接下来我们用图来表示。
我们当前有一个Java文件,若当前它使用的是JDK8编译的,而我们想要使用JDK11来编译它,怎么办呢,最简单的方法就是将JAVA_HOME的内容改为JDK11,具体操作如下:
二、安装配置JDK11
笔者现在安装一个JDK11(笔者已经安装有JDK8)
点击下一步
配置好路径后,点击下一步
等待安装
点击关闭
安装成功后,笔者的所有JDK文件如下图所示:
点击进入jdk-11中,我们看到JDK11已经完全集成了JRE,已经完全看不到JRE的身影
三、切换JDK11版本
若我们想要切换JDK11版本,我们需要修改JAVA_HOME的JDK路径,具体步骤如下图所示:
修改JAVA_HOME的JDK路径为JDK11的路径:
四、查看切换JDK11版本是否成功
之后,我们查看JDK版本是否切换成功:输入java -version命令查看JDK版本
java -version
我们发现JDK11版本已经切换成功!!!
五、再次切换至JDK8版本
根据以上步骤,我们需要修改JAVA_HOME的JDK路径,具体步骤如下图所示:
修改JAVA_HOME的JDK路径为JDK8的路径:
六、查看切换JDK8版本是否成功
之后全部保存后,我们查看JDK版本是否切换成功:输入java -version命令查看JDK版本
java -version
我们发现,JDK的版本并没有被切换回来!!!
原因:
这是为什么呢?这是因为当我们安装并配置好JDK11之后它会自动生成一个环境变量(此变量我们看不到),此环境变量优先级较高,导致我们在切换回JDK8后系统会先读取到JDK11生成的环境变量,而不会读取到JDK8的环境变量。
解决办法:
我们需要将%JAVA_HOME%\bin上移至环境变量最高处(赋予它最高的优先级)
之后,我们再次查看JDK版本是否切换成功:输入java -version命令查看JDK版本
我们看到已然切换成功!!!
版权归原作者 极小白 所有, 如有侵权,请联系我们删除。