關於安裝多個版本jdk之后java -version不正確的問題


問題描述:

今天突然想寫一個socket通信的小應用,分別采用BIO、NIO、AIO的方式來實現,來復習前面看的關於TCP/UDP通信的知識。於是乎在原來安裝了jdk1.6的機子上重新安裝了jdk1.8。結果就出現了一個很蛋疼的問題:我原來的JAVA_HOME配置根本就沒有改變,但是在命令行執行 java -version出現的卻是1.8版本,而javac -version出現的是正常的1.6版本。

 

原因分析:

參考 http://www.oschina.net/question/942785_103000?fromerr=U6XKsOdO , 主要原因是javac -version是由JAVA_HOME指定的路徑中的java版本來決定的。而java -version中找的java.exe是根據系統環境變量PATH來定的,而此前我系統中的PATH變量配置為:JAVA_HOME相關的配置在最后,也就是在system32的后面。這樣因為每次安裝jre的時候,都會講java.exe拷貝到system32路徑中,而java -version會依次變量PATH配置,如果找到了就不在繼續往后找,這就導致java -version永遠是最新版本的java。

 

解決辦法:

其實只要將系統環境變量PATH中的JAVA_HOME相關的配置移到最前即可。 其他的可以刪除system32中的java.exe javaw.exe javaws.exe,刪除注冊表等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM