我本来只有一个JDK11,后来因为要用到jdk8,但是我又不想卸载掉11,于是想到了jdk共存,根据百度经验操作作了如下一通操作:

1、删除java.exe,javac.exe,javaw.exe

首先,jdk11会自动在 C:\Program Files\Common Files\Oracle\Java\javapath 录下面生成三个文件

【注】如果是其他的JDK版本可能会在\Program Files(X86)或者ProgramData中,总能找到的。

正在使用另一java安装 正在安装另一个java_JAVA


这三个文件的优先级比较高,会使java -version和javac -version一直显示jdk11

2、删除系统环境变量中安装jdk8产生的 Path

C:\Program Files\Common Files\Oracle\Java\javapath,

C:\Program Files(x86)\Common Files\Oracle\Java\javapath

正在使用另一java安装 正在安装另一个java_java_02

在安装jdk8的时候,安装过程中会在系统变量Path的最前面加上了C:\ProgramData\Oracle\Java\javapath;,这是安装jdk8的时候带出来的,并且在Path的最前面,所以无论修改注册表还是Java控制台都没有用,执行的指令在系统变量中搜寻命令时最先找到的就是C:\ProgramData\Oracle\Java\javapath;,始终是jdk8的。也删除。

3、正确配置环境变量

我已经安装好jdk8和jdk11了,所以直接进行环境变量的配置。
配得有点多,但是方便以后进行JDK版本的选择与修改。

3.1 JAVA_HOME和JRE_HOME

正在使用另一java安装 正在安装另一个java_JAVA_03

3.2 CLASSPATH

这里不动,依然为

%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

正在使用另一java安装 正在安装另一个java_java_04

3.3 path

删除

C:\Program Files\Common Files\Oracle\Java\javapath,
 C:\Program Files(x86)\Common Files\Oracle\Java\javapath

根据我的安装目录, 修改%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin为,%JAVA_HOME%\bin;%JRE_HOME%\bin;最好以列表形式去修改,将他们分为两行,如果在同一行系统好像不识别,java -version会报java不是可执行命令。

看一下修改前后对比

正在使用另一java安装 正在安装另一个java_java_05


正确的修改方式:

C:\Program Files(x86)\Common Files\Oracle\Java\javapath不是我盘符中实际存在的路径,我没删也没关系。

正在使用另一java安装 正在安装另一个java_java_06


【注】像下面这样放到一行就会报错,所以要像上图一样分开。还要注意前后不要有多余的空格之类的符号!!!

正在使用另一java安装 正在安装另一个java_jdk_07

4、版本切换测试

4.1 JDK1.8

当我JAVA_HOME和JRE_HOME中均为8版本时:

正在使用另一java安装 正在安装另一个java_Java_08


注意修改环境变量后要连续点两次确定,否则可能没生效,导致报错。

测试结果:

正在使用另一java安装 正在安装另一个java_jdk_09

4.2 JDK11

修改环境变量:

正在使用另一java安装 正在安装另一个java_JAVA_10

连点两次确定后重新打开cmd进行测试(新打开一个窗口!!!)

正在使用另一java安装 正在安装另一个java_JAVA_11


JDK版本切换成功!