1
如果你安装JDK时,在第一个安装界面,会让你选择安装一个JRE,一般都会按照默认的选项再安装要给独立的JRE。
-
虽说安装一个额外的JRE没有用也没有必要,一般也就多占了一些硬盘空间,但问题是它会在C:\Windows\System32目录下生成java.exe、javaw.exe、javaws.exe。
-
而System32下的可执行文件也会被加入环境变量里面,和你的JDK环境变量造成冲突。
冲突时,谁在前面,谁就能生效,比如你在cmd里面打java,生效的那个就处于环境变量的前面
END
解决办法
-
可以直接删除system32下面的java.exe、javaw.exe、javaws.exe3个文件,这样它们永远不会再对你的jdk造成冲突
-
也可以删除那个独立的JRE,有了JDK,大部分人真的没有必要再安装一个独立的JRE。
-
一般造成这个问题的话,你的%JAVA_HOME%\bin在path的最后,可以把它提到最前面使优先级超过system32
-
最后,献上一个很有用的cmd命令"where"
比如where java可以看到自己配置好的环境变量到底是真正生效了还是system32里面的jre伪装的。