安装jdk后,自己配置环境变量不起作用的问题

问题描述:window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题 ?

现      象:Windows机器,先安装了JDK1.7,然后配置了JAVA_HOME等环境变量,后面又安装了JDK 1.8(不修改环境变量,环境变量还是指向1.7)。随后我们在命令行中输入:java -version时,发现环境变量中的jdk是1.8。是什么原因造成的呢?又应该如何来解决?

原      因:在1.7版本及以后,安装完jdk后,
1.会把java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录;
2.会把当前安装的jdk的运行路径写在【C:\Program Files (x86)\Oracle\Java\javapath】和【C:\ProgramData\Oracle\Java\javapath】文件中;
3.这两个文件夹中存放的是java.exe、javaw.exe、javaws.exe三个可执行文件,然后把这两个运行路径写入环境变量path的最前面。

安装jdk后,自己配置环境变量不起作用的问题_第1张图片
在jdk在运行的时候
①.先找C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件;
②.如果找不到①中的文件,就找环境变量中的第一个运行路径【C:\Program Files (x86)\Oracle\Java\javapath】;
③.如果找不到②中的路径的文件,就找第二个运行路径【C:\ProgramData\Oracle\Java\javapath】;
④.最后才会使用我们自己配置的jdk的环境变量JAVA_HOME。
注意:①②③④的优先级依次从高到低,任何一级找到了环境运行的文件,则不在往下找了


解决办法:
1.删除环境变量path中的【C:\Program Files (x86)\Oracle\Java\javapath】
2.删除环境变量path中的【C:\ProgramData\Oracle\Java\javapath】
注意:其实上面1、2删除以后就可以使用我们自己配置的环境变量JAVA_HOME了,不过【C:\Program Files (x86)\Oracle\Java\javapath】和【C:\ProgramData\Oracle\Java\javapath】这两个文件中的内容也没有什么用,可以直接删除这两个java文件
如果上面还不起作用:
3.将C:\Windows\System32目录下的java.exe,javaw.exe,javaws.exe删除即可


然后运行java -version看是不是我们自己配置的java的版本


你可能感兴趣的:(java)