一、问题描述


   之前安装了JDK 1.6.0_03,设置了环境变量JAVA_HOME为1.6.0_03的安装目录,并且在PATH变量中加入了%JAVA_HOME%\bin。之后又安装了JRE 1.7.0_25。在Windows命令行下,执行java -version显示:java version 1.7.0_25,而执行javac -version则显示:javac 1.6.0_03。



二、原因分析


   同时安装了jdk 1.6.0_03和jre 1.7.0_25,且PATH变量中,C:\WINDOWS\system32目录在%JAVA_HOME%\bin之前。在Windows命令行下执行命令时,先从当前目录搜素,然后按照PATH设置的路径依次查找命令,而JRE安装时会将java.exe安装到C:\WINDOWS\system32目录下,所以执行java -version命令时查看的是jre的版本,而执行javac -version时查看的jdk的版本。



三、解决方法


   将path中%JAVA_HOME%\bin放在%SystemRoot%\system32之前,执行java -version和javac -version,均为1.6.0_03版本。