1.问题描述
最近在学习发现在window下的命令行窗口运行 java -version 显示的是1.8的版本, 而运行 javac -version 显示的版本确实1.7版本。而我的环境变量中只配置了1.7的jdk(虽然我也安装了1.8,之前也配置过1.8的jdk)。如下:
2.解决问题方法
方法一 把Path关于java的配置提到最前面。
方法二 把System32文件下的java.exe 文件删除
3.原因探究
java的高版本在进行安装的时候,会把java.exe复制到System32这个文件下一份。而环境变量虽然配置了1.7,但是由于window先读取system32下的文件(path中也有system32上面的配置),window先读到高版本的java,之后虽然有1.7的配置,window不会再读取。
4.win10下java-version和javac-version版本不一致的问题
不过尝试之后发现这个解决策略并不适用于win10,不过根据上面的分析,发现问题在于要删除的java.exe,javaw.exe,javaws.exe的位置并不在C盘windows文件夹下的System32,而是在C:\ProgramData\Oracle\Java\javapath,这个目录在系统变量中的path变量中可以看到,删除这个目录下的三个exe文件,再次查询java -version和javac -version,发现二者一致了,问题就解决了。