最近装了多个jdk,明明已经把原来的jdk配置更改了,cmd的dos指令查询依然找到的是原来版本的jdk,百度了一下才知道是因为:
a)jdk1.6、jdk1.7会生成这三个文件在:C:\Windows\System32目录下;
b)jdk1.8会生成这三个文件在:C:\Program Files (x86)\Common Files\Oracle\Java\javapath目录下;
目录从下图得出也就是系统变量中的path环境变量中
下图为对应jdk1.8在C:\Program Files (x86)\Common Files\Oracle\Java\javapath目录中的Java.exe等文件
因为我也装了jdk1.6与jdk1.5,所以C:\Windows\System32目录下也有对应得文件
因此我得出结论,我们有两种处理方式去处理同时装多个jdk时出现的切换jdk版本异常的问题
一,删掉C:\ProgramData\Oracle\Java\javapath或C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe文件,然后更新JAVA_HOME;(每次都得删会很麻烦)
二,将jdk的配置放在path的前面如上图,windows10的环境配置path是分行的
当你将%JAVA_HOME%\bin上移到C:\Program Files (x86)\Common Files\Oracle\Java\javapath的前面就可以了,如下图:
然后更新JAVA_HOME,建议使用这种方法,一劳永逸。
总结:
多个jdk的安装查询时Java -version 不是预期的样子,是因为系统自己做了备份(C:\ProgramData\Oracle\Java\javapath或C:\Windows\System32 两个目录,)系统加载jdk时,会优先从path环境配置的前面优先找Java.exe,找不到时,才会去我们配置的地方找Java.exe;当我们切换jdk时不仅要更新JAVA_HOME还要记得把系统自己备份的Java.exe给删掉。旧版本的Windows我们配置path中的JAVA_HOME时是直接放在path最前面的,就避免了这种问题;(如果不是必须多个jdkt同时用,可以直接把原来的jdk给卸载了,只留一个,留着安装包,以后想用可以再装)
旧版path环境变量的图示如下: