java和javac版本不一致


此博客鏈接:https://www.cnblogs.com/ping2yingshi/p/14930400.html

1.問題描述

window10安裝過jdk后,當編譯運行java代碼時,java和javac的版本不一致。java是1.8.0_181,而javac是16.0.1,如下圖所示。

2.出現原因

我安裝jdk版本是16.0.1的版本,可是在我電腦上還有一個jre1.8.0_181。

3.解決方案

1.把path 里%JAVA_HOME%\bin放在path變量的最前面。(嘗試未成功)

2.在系統環境變量中添加path,並添加JAVA_HOME%\bin。(嘗試成功)

4.重現java和javac版本不一致問題

4.1回退到原來的版本

1.把3中1的%JAVA_HOME%\bin不放在path變量的最前面,放到原來倒數第二的位置。

2.刪除path中添加的JAVA_HOME%\bin。

3.在控制台中輸入java和javac,java和javac的版本是一樣的,不是預期結果。實驗失敗。

 4.2重新下載兩個版本的jdk,重現java和javac版本不一致問題

1.在官網上下載1.8.0版本的jdk。

2.解壓安裝jdk。詳情參見博客:https://www.cnblogs.com/ping2yingshi/p/14930839.html 

3.在環境變量中分別配置兩個版本jdk的路徑。

 

 4.手動切換不同版本的jdk,在命令行中查看java和javac的版本,發現切換后的java和javac版本是和配置的JAVA_HOME中的jdk版本是致的,沒有出現java和javac版本不一致問題。實驗失敗。

 

 

 

4.3請教師妹

4.3.1重現問題

師妹在自己電腦上,先安裝了jre,然后安裝了jdk,先把我的問題重現了,然后解決這個問題,最后又重現了問題。

4.3.2我本人電腦重現問題

過程

1.師妹懷疑我C盤里有java.exe,先讓我在C:\Windows\System32找java.exe,但是在我電腦的C:\Windows\System32沒有找到java.exe。

 

2.對比我和師妹的環境變量,發現我電腦的系統環境中沒有path。

3.經過在c盤搜索java.exe文件,雖然在c盤的某個目錄下找到了,但是師妹認為這不是我們需要的版本。

4.重新下載一個jre,觀察默認安裝路徑,發現默認安裝路徑還是在C:\Windows\System32下。

 

 

 5.在命令行輸入where java,顯示不是內部命令。而且此時的java和javac版本是一樣的。(這里不是在C:\Windows\System32下輸入的命令)

 6.到system32的路徑下輸入where java,顯示了java命令所在目錄。

 7.再次查看java和javac的版本,發現Java和javac版本不一致。

8.在電腦的系統變量中配置path路徑,沒有在C:\Windows\System32下查看Java和Javac版本。發現兩個版本不一致。

9.將path變量中的順序更改,將%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin放在C:\Windows\system32之前,如下圖所示。

10.再次查看java和Javac版本,發現Java和javac版本是一樣的。

 4.4總結

4.4.1java和javac版本不一樣的原因

出現Java和Javac版本不一樣的原因是,系統會先到path路徑下按順序找相應文件,而jre1.8.0是在系統所在的路徑下,被優先搜索到,所以使用了C盤下的jre。

4.4.2不能重現問題的原因

我不能重現java和javac版本不一樣問題的原因是,當我在系統環境變量下添加了path路徑,優先搜索D盤下的jre。后來不知道什么操作把C盤下的java.exe等可執行文件刪除了,所以再次刪除path路徑后,執行命令,C盤下已經不存在java.exe等可執行文件了,然后去搜索了D盤下的jre可執行文件。

 

 

 

 

 

 

 

 


免責聲明!

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



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