我本来只有一个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 -version和javac -version一直显示jdk11
2、删除系统环境变量中安装jdk8产生的 Path
C:\Program Files\Common Files\Oracle\Java\javapath,
C:\Program Files(x86)\Common Files\Oracle\Java\javapath
在安装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
3.2 CLASSPATH
这里不动,依然为
%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
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不是可执行命令。
看一下修改前后对比
正确的修改方式:
C:\Program Files(x86)\Common Files\Oracle\Java\javapath不是我盘符中实际存在的路径,我没删也没关系。
【注】像下面这样放到一行就会报错,所以要像上图一样分开。还要注意前后不要有多余的空格之类的符号!!!
4、版本切换测试
4.1 JDK1.8
当我JAVA_HOME和JRE_HOME中均为8版本时:
注意修改环境变量后要连续点两次确定,否则可能没生效,导致报错。
测试结果:
4.2 JDK11
修改环境变量:
连点两次确定后重新打开cmd进行测试(新打开一个窗口!!!)
JDK版本切换成功!