本機已經安裝了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了