关于多JDK的环境变量配置问题
前言
许多小伙伴可能会遇到同时安装了两三个不同版本的JDK而导致配置环境变量出现了问题,例如java -version 和javac -version版本不匹配,更改JDK版本不成功,本文讨论总结一下该问题的解决方法。
一、一台电脑能否同时使用多个JDK?
答案:不能。一台电脑可以安装多个版本的JDK,但是一次只能使用一个,比如说我们同时安装了JDK1.8和JDK14,那么我们不能同时使用JDK1.8和JDK14,只能在需要时手动切换当前JDK的环境变量。
二、操作方法
1.找到环境变量配置地点
方法一:右击电脑–属性–高级系统设置 – 环境变量
方法二:Windows+R,输入SystemPropertiesAdvanced2.修改环境变量
(需要注意:一个系统只能添加一个 JDK PATH ,但可以添加多个JAVA_HOME。)
1.首先在"环境变量-系统变量"的path(已存在不用新建)里追加值(注意如果是win7系统,先在前面一个path的后面添加一个半角符号’;’):
%JAVA_HOME%\bin;
%JAVA_HOME%\jre\bin;
2.在系统变量里新建变量JAVA_HOME,JAVA_HOME8和JAVA_HOME14,并进行如下配置:
(假设我们在电脑里同时安装了JDK1.8和JDK14)
| 变量 | 值 |
| ---- | ---- |
| JAVA_HOME | %JAVA_HOME8% |
| JAVA_HOME8 | C:\Program Files\Java\jdk1.8 |
| JAVA_HOME14 | C:\Program Files\Java\jdk14 |
可以看到我们在JAVA_HOME里的配置是%JAVA_HOME8%,而%JAVA_HOME8%里的值指向我们安装的JDK1.8的位置,所以这个时候我们使用的JDK是JDK1.8。如果想使用JDK14,就把JAVA_HOME里的值改成%JAVA_HOME14%就好了!
三、注意事项
如果配置完成后在控制台输入
java -version和javac -version发现版本不一样,或者JDK没有变化,还是原来的版本,说明环境变量优先级出现了问题,我们回到配置环境变量的界面,进入到path变量中去审查他的元素。
如果我们找到了C:\ProgramData\Oracle\Java\javapath;这一路径,或者该路径排在%JAVA_HOME%下的bin路径之前,则会默认使用该路径下的JDK版本,而%JAVA_HOME%\bin的配置不会生效。即我们的java版本是当前JAVA_HOME的配置,而javac编译器还是C:\ProgramData\Oracle\Java\javapath这一路径下JDK的版本。解决方案
1.把%JAVA_HOME%\bin; 手动移动到第一位,把%JAVA_HOME%\jre\bin;手动移动到第二位。而路径C:\ProgramData\Oracle\Java\javapath; 移动到第三位,或者删除该路径。
2.为了保险起见,同时需要将C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe 删除。(因为安装JDK时自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,由于这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,在调用javac时会优先返回这个目录下Java的安装版本信息。)(如果没有可以不用管)
总结
虽然一台电脑只能同时运行一个版本的JDK,但是我们可以通过集成开发工具(IDE)来辅助我们创建不同JDK版本的项目,或者修改已创建项目的JDK版本。