windows如何解决Error: Registry key 'SoftwareJavaSoftJava Runtime Environment'CurrentVersion'
問題再現(xiàn)與解讀
首次,使用 java 命令+任意參數(shù) 都會報這個錯誤,最典型的就是java -version
解讀一下這個報錯信息,注冊表路徑 SoftwareJavaSoftJava Runtime EnvironmentCurrentVersion 當(dāng)前值是 1.8,但是 java 命令版本是 1.7
問題解決
方式一:刪除C:WindowsSystem32下的java.exe, javaw.exe, javaws.exe
方式二:修改環(huán)境變量順序
這是我原本的 Path 環(huán)境變量配置:
%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;%JAVA_HOME%in;
修改后把%JAVA_HOME%in提前到%SystemRoot%system32;之前
%JAVA_HOME%in;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;
問題分析過程
環(huán)境變量
Windows 中的 DOS 操作系統(tǒng)中的 Path 環(huán)境變量,當(dāng)要求系統(tǒng)運行一個程序而沒有告訴它程序所在的完整路徑時,系統(tǒng)除了在當(dāng)前目錄下面尋找此程序外,還應(yīng)到 Path 中指定的路徑去找。
java 命令,其實是由系統(tǒng)根據(jù) Path 環(huán)境變量路徑尋找 java.exe 程序來運行。
CMD - where 命令
描述:顯示符合搜索模式的文件位置。在默認情況下,搜索是在當(dāng)前目錄和 PATH 環(huán)境變量指定的路徑中執(zhí)行的。
我們可以運行 where java 來查看
我的 java 1.8 安裝在 D:libjdk1.8, 但是 %SystemRoot%system32(即對應(yīng)C:WindowsSystem32) 優(yōu)先于 %JAVA_HOME%in(即對應(yīng) D:libjdk1.8in)匹配,所以找到了 C:WindowsSystem32java.exe, 但是這是java 1.7的運行程序。
運行 regedit 打開注冊表
點擊 開始 --> 運行... --> 輸入 regedit, 回車 --> 打開注冊表
找到 HKEY_LOCAL_MACHINESoftwareJavaSoftJava Runtime Environment, 就可以查看注冊表屬性了,我的 CurrentVersion 是 1.8
總結(jié)
使用 regedit 查看注冊表中的 CurrentVersion
使用 where java 查看路徑
讓注冊表中的 CurrentVersion 和 where 命令找到的第一個 java.exe 的版本保持一致!
總結(jié)
以上是生活随笔為你收集整理的windows如何解决Error: Registry key 'SoftwareJavaSoftJava Runtime Environment'CurrentVersion'的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图数据库(Nebula)使用时遇到的坑
- 下一篇: 笔记本怎么折简单又好看如何折电脑