本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7.
安装jdk1.6前,执行java -version得到
C:\Users\liuxiang2>java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) Client VM (build 23.21-b01, mixed mode, sharing)
安装完jdk1.6,并修改环境变量JAVA_HOME为C:\jdk1.6.0.再执行 java -version时,依然显示:
C:\Users\liuxiang2>java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) Client VM (build 23.21-b01, mixed mode, sharing)
看上去,新的环境变量JAVA_HOME=C:\jdk1.6.0并没有生效。 在网上找了很多资料才发现:
在安装JDK1.7时(本机先安装jdk1.7再安装的jdk1.6),自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,由于这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级
解决方案:将C:\Windows\System32目录下的java.exe,javaw.exe,javaws.exe删除即可。开启新的命令行窗口,再执行java -version时,就得到了期望中的结果
如果到这里还不好用,那么重点来了:将path环境变量中Java相关的移动到最上面,最先解读,就OK了