win7下关于java -version和指定JDK版本不一致问题

  今天在安装Tomcat时,发现了自己电脑上奇怪的现象,就是明明自己电脑里安装的是JDK1.6版本,但是在cmd里输入java -version是却显示JDK1.8.31。
    对此,我首先检查java的环境变量配置

(1)在系统变量里新建JAVA_HOME变量,变量值为:D:\JDK1.6.0(根据自己的安装路径填写)

win7下关于java -version和指定JDK版本不一致问题_第1张图片

(2)新建classpath变量,变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(特别要注意“.;”)

(3)在Path变量(已存在不用新建)添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意变量值之间用“;”隔开)

确认之后,java和javac命令也能正常使用。感觉应该没有问题。但是此时使用java -version查看JDK的版本仍然显示1.8.31。
经过一番研究,发现问题在于Path变量,相信大家的Path变量里面也有不少东西,当时添加变量的时候将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin补充在了最后,但是如果将%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin补充在最前,再java -version显示就是正确的了。经过不断的调整,终于发现Path变量中的C:\ProgramData\Oracle\Java\javapath和%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin的前后位置决定了java -version显示的版本号,Path变量是按顺序加载的,先加载到的JDK决定了java -version显示的版本号,与JAVA_HOME的设置无关。

后来,又查看了C:\ProgramData\Oracle\Java\javapath文件夹里内容,果然有个java.exe等一系列东西,我想应该是我在安装oracle时安装上去的。

win7下关于java -version和指定JDK版本不一致问题_第2张图片

以上,是本人在配置环境时的一次经历,如果有人知道得更加详细、了解更加深入,还请留言多多指教。3Q。

你可能感兴趣的:(JAVA)