切换JDK不生效的终极解决办法及原理简述

一、现象:安装好JDK、配置好JAVA_HOME后


切换JDK不生效的终极解决办法及原理简述_第1张图片
image.png

此时在在cmd下输入【java -version】后,还是显示
【C:\Users\Administrator>java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)】则表示jdk版本切换并不成功。

二、解决办法
2.1、找到控制面板,查看方式选择大图标或者小图标,找到java选项并点击进入。然后选择java栏,点击查看,讲jdk1.7的启用去掉,并保存:


切换JDK不生效的终极解决办法及原理简述_第2张图片
image.png

此时再在cmd下输入【java -version】后,显示java版本,如果修改成功则表示可以了,不行则表示不生效,继续向下看。

2.2、找到目录C:\Windows\System32,将java.exe,javaw.exe,javaws.exe删除即可。


切换JDK不生效的终极解决办法及原理简述_第3张图片
image.png

此时再在cmd下输入【java -version】后,显示java版本,如果修改成功则表示可以了,不行则表示不生效,继续向下看。

2.3、如果上述办法再不行,则看一下环境变量里边的path中java_home是否配置到了最前边,如果不在最前面,就需要配在最前面(注意,这点非常重要,这个是因为java目录的查找是按path中的路径顺序加载的,如果java_home的配置不在最前面,就可能被其它java路径配置干扰,导致java_home配置无效)


切换JDK不生效的终极解决办法及原理简述_第4张图片
image.png

此时再在cmd下输入【java -version】后,显示java版本,此时一般是可以成功的,如果还是不生效,那么打开cmd输入where java,把找到的javapath下的java.exe干掉,再配置一下试试(注意,这个是按顺序加载的,如果这里显示有javapath,就一定会有java的)


切换JDK不生效的终极解决办法及原理简述_第5张图片
image.png

三、总结:
3.1、不要被java_home的配置干扰了,单独配置java_home其实没有什么用,配置java_home仅仅是起个系统环境变量的作用而已,真正起作用的是path的配置
3.2、系统在检索java版本时,是按照path中配置的路径,依次去找的,直到找到第一个java.exe,然后后面的配置就都不生效了(这也是为什么java_home一定要配置在最前面的原因)
3.3、系统中还有很多指向java_home的配置,比如Oracle的配置(参考:C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;)

如有问题或有想相互学习交流的,可以联系本人(邮箱:[email protected],微信:caililiangcaililiang,QQ:785553790)

你可能感兴趣的:(切换JDK不生效的终极解决办法及原理简述)