写在前面
为了能在电脑配置多个版本的jdk并实现切换,我跟着教程做了很多,实在无法成功,最后找了淘宝才完成,现在把方法分享给大家。
同时,也会提到我目前的疑惑,希望有大佬能解答!
本文分成三部分:
- 基础方法:配置多个jdk版本的基础方法
- 进阶方法:稍微改进基础方法的一种配置方法
- 我的疑惑和发现
1. 基础配置方法
一句话概括:想配置什么版本的jdk,就把找到该jdk目录下的bin,然后把bin的地址复制到环境变量path里面即可。
比如配置jdk14:在path里面添加我的路径:E:\Java\jdk-14.0.2即可配置成功。
当电脑里下载了多个jdk,我想切换jdk版本为1.8的时候,仍然是修改path即可成功,如下图所示:
2. 进阶方法
在很多文章中,我发现下图所示的环境变量。这种方式切换起来会稍稍方便一点(仅仅是不用重新复制粘贴bin路径)。
进行这种尝试,实际上,我是想实验一下这种方法究竟可不可行。
除了要新增 JAVA_HOME JAVA_HOME1.8(因为jdk版本为1.8所以起名为这个,因人而异即可) JAVA_HOME14 这三个变量外,需要在path里面写一条 %JAVA_HOME%\bin ,如下图所示。
之后,切换jdk版本,只要修改 JAVA_HOME 的值为 %JAVA_HOME1.8% 或者 %JAVA_HOME14% 即可!
3. 我的疑惑和发现
3.1 不重新打开cmd则显示的java版本不更新
我遇到这样的情况:
配置完jdk14,我查询java版本,发现是14。然后用上面第二节提到的方法改为jdk1.8。再次向cmd查询java版本,发现仍然是14。
但是,当我重新打开一个cmd,查询java-version,发现显示1.8。
为什么会出现这种情况呢?我猜想,查询过一次java版本后,第二次查询他只是重复上一次查询的结果,实际上没有真的去查询。
cmd出现这种情况这是什么原因?
3.2 注册表里面究竟是什么?
在几篇文章中,比如 超级详细的JDK 安装与配置(包含二个或多个JDK的同时安装) 提到一种方法是删除注册表文件。
可是,我上面配置jdk的方法根本不涉及注册表内容。那么,下面图中的Java Development Kit的CurrentVersion项的值 和Java Runtime Environment的CurrentVersion项的值 究竟是什么?
3.3 删除javapath的Java文件是什么意思?
文章 超级详细的JDK 安装与配置(包含二个或多个JDK的同时安装) 提到了删除java文件。我发现,这个路径确实是在path里面的。
我遇到这样的情况,本来配置好的jdk1.8,当删除C:\ProgramData\Oracle\Java\javapath里的java文件后,输入java -version就报错了。
问题:java文件是怎么形成的呢?