1. 問題
在安裝jdk后,配置完環境變量,然后在控制台輸入java -version出現與安裝版本不一致的版本,如安裝1.8后version仍顯示1.7,即:修改環境變量沒有生效且原先存在安裝過的JDK版本。
2. 原因
1)原先版本的JDK安裝后將java.exe、javaw.exe、javaws.exe復制到C:\Windows\System32目錄,這個目錄在WINDOWS環境變量中的優先級高於JAVA_HOME設置的環境變量優先級,故此直接更改JAVA_HOME會無效。
2)或原先安裝的JRE將C:\ProgramData\Oracle\Java\javapath寫入了環境變量Path中
3. 解決方法
1)刪除C:\Windows\System32目錄下的java.exe、javaw.exe、javaws.exe三個文件
2)命令行中輸入:where java,若輸出的文件夾不是自己在Path中設定的,將目錄下的java.exe、javaw.exe、javaws.exe三個文件直接刪除(或替換成自己jdk/bin下面的對應文件)
可以通過命令行輸入:echo %Path%輸出看Path在自己設定的值之前是否新加了其他路徑
我在配置環境變量時將%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;放在了首位,但是輸出Path時發現第一個值卻是:C:\ProgramData\Oracle\Java\javapath,確定這個路徑誤導了控制台的jdk選擇,直接刪除該目錄下的java.exe、javaw.exe、javaws.exe三個文件后重啟命令行發現jdk版本正常,且C:\ProgramData\Oracle\Java\javapath路徑消失。
3)刪除環境變量Path中C:\ProgramData\Oracle\Java\javapath的配置
4)重啟命令行java -version測試。