win7 系统,同时安装了JDK7和JDK8,卸载了JDK8之后,cmd命令行输入:java -version ,本以为显示java版本1.7,结果弹错:has value '1.7',but '1.8' is required.
我查看JAVA_HOME,环境变量,发现也没有问题,指向的是C:\Java\jdk1.7.0
解决方法:
由于安装完JDK7之后,安装了JDK8,因为在安装JDK1.8时,自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,由于这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级。
明白这个后,就知道出错原因了,虽然卸载了JDK1.8,但C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个可执行文件还是JDK1.8的,所以把JDK1.7的JAVA_HOME\bin下的这三个对应可执行文件复制覆盖到C:\Windows\System32目录下,此时再在cmd命令行输入:java -version ,一切正常。