1. 问题
在安装jdk后,配置完环境变量,然后在控制台输入java -version出现与安装版本不一致的版本,如安装1.8后version仍显示1.7,即:修改环境变量没有生效且原先存在安装过的JDK版本。
2. 原因
1)原先版本的JDK安装后将java.exe、javaw.exe、javaws.exe复制到C:WindowsSystem32目录,这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,故此直接更改JAVA_HOME会无效。
2)或原先安装的JRE将C:ProgramDataOracleJavajavapath写入了环境变量Path中
3. 解决方法
1)删除C:WindowsSystem32目录下的java.exe、javaw.exe、javaws.exe三个文件
2)命令行中输入:where java,若输出的文件夹不是自己在Path中设定的,将目录下的java.exe、javaw.exe、javaws.exe三个文件直接删除(或替换成自己jdk/bin下面的对应文件)
可以通过命令行输入:echo %Path%输出看Path在自己设定的值之前是否新加了其他路径
我在配置环境变量时将%JAVA_HOME%in;%JAVA_HOME%jrein;放在了首位,但是输出Path时发现第一个值却是:C:ProgramDataOracleJavajavapath,确定这个路径误导了控制台的jdk选择,直接删除该目录下的java.exe、javaw.exe、javaws.exe三个文件后重启命令行发现jdk版本正常,且C:ProgramDataOracleJavajavapath路径消失。
3)删除环境变量Path中C:ProgramDataOracleJavajavapath的配置
4)重启命令行java -version测试。