共計 3488 個字符,預計需要花費 9 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關安裝多版本的 JDK 出現問題怎么辦,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一,背景
1,原來安裝了 jdk1.8.0_91,因為要在本地跑服務端程序,需要 1.7 版本的,需要安裝的是 1.7.0_79;
2,原來的安裝目錄:
D:\Program Files (x64)\java\jdk1.8.0_91
D:\Program Files (x64)\java\jre1.8.0_91
3,低版本的安裝目錄:
D:\Program Files (x64)\java\jdk1.7.0_79
D:\Program Files (x64)\java\jre7
也就是所有的 jdk 和 jre 是安裝在同一個目錄下的。
4,配置 JAVA_HOME、CLASSPATH 和 Path 路徑
JAVA_HOME=D:\Program Files (x64)\java\jdk1.7.0_79
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME% \lib\tools.jar;
Path=C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Fingerprint Manager Pro\;D:\Program Files\VanDyke Software\Clients\;D:\Program Files\Git\cmd;D:\Program Files (x64)\apache-maven-3.3.9\bin;D:\Program Files (x64)\nodejs\;D:\Program Files\Open×××\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
二,問題
現象描述與問題排查:
1,配置好上述環境變量之后,在命令提示符窗口中輸入 java -version,出現的版本還是 1.8.0_91,按照網上說的方法改了 path 變量值如下,也就是把 %JAVA_HOME% 那兩個提到最前面,但是這樣子之后輸入 java -version 問題依舊:
Path=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Fingerprint Manager Pro\;D:\Program Files\VanDyke Software\Clients\;D:\Program Files\Git\cmd;D:\Program Files (x64)\apache-maven-3.3.9\bin;D:\Program Files (x64)\nodejs\;D:\Program Files\Open×××\bin;
2,然后我做的嘗試就是將
D:\Program Files (x64)\java\jdk1.8.0_91
D:\Program Files (x64)\java\jre1.8.0_91
兩個文件夾轉移到 D:\Program Files (x64)\java1 目錄下,也就是將其轉移出原來的路徑,然后再執行 java -version 提示
“系統找不到文件 c:\programdata\oracle\Java\javapath\java.exe”,原來問題出在這個目錄下;
經過排查發現,這個目錄是個隱藏目錄,可以通過命令提示符窗口進入
3,經過排查發現,原來 C:\ProgramData\Oracle\Java\javapath 目錄下是有 3 個鏈接文件;分別指向
D:\Program Files (x64)\java\jre1.8.0_91\bin\java.exe
D:\Program Files (x64)\java\jre1.8.0_91\bin\javaw.exe
D:\Program Files (x64)\java\jre1.8.0_91\bin\javaws.exe
然后我將三個鏈接文件刪除,
注意:
(1)必須先刪除這三個鏈接文件然后才可以創建;
(2)下面命令執行的時候,當下的工作目錄是:
C:\ProgramData\Oracle\Java\javapath
創建鏈接文件:
在命令提示符窗口中依次執行以下命令:
mklink java.exe D:\Program Files (x64)\java\jre7\bin\java.exe
mklink java.exe D:\Program Files (x64)\java\jre7\bin\javaw.exe
mklink java.exe D:\Program Files (x64)\java\jre7\bin\javaws.exe ,
4,創建好之后,再執行 java -version 命令提示:
Error: Registry key Software\JavaSoft\Java Runtime Environment \CurrentVersion
has value 1.8 , but 1.7 is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.”
顯然這里是注冊表的問題,只需要修改 CurrentVersion 鍵的值就可以了:
打開注冊表編輯器:在開始的“運行”輸入 regedit 命令,回車
讓后一層層往下找:最終選中 Java Runtime Environment
HKEY_LOCAL_MACHINE— SOFTWARE— JavaSoft— Java Runtime Environment
這里可以看到,右邊窗口中的名稱一列有個 CurrentVersion,雙擊 CurrentVersion,進入編輯窗口;
修改好之后點擊“確定”即可。
到此再回到命令提示符窗口,輸入 java -version 命令,一切正常;
5,但是后來又打開了命令提示符窗口,輸入 java 命令報錯如下:
確認 javapath 目錄下的鏈接文件沒有問題,JAVA_HOME=D:\Program Files (x64)\java\jdk1.7.0_79 也沒有問題,
后來想到自己之前把 PATH 變量里的 C:\ProgramData\Oracle\Java\javapath; 給刪掉了,于是修改回來如下,問題得到解決,
最終的 PATH 為:
PATH=C:\ProgramData\Oracle\Java\javapath;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Fingerprint Manager Pro\;D:\Program Files\VanDyke Software\Clients\;D:\Program Files\Git\cmd;D:\Program Files (x64)\apache-maven-3.3.9\bin;D:\Program Files (x64)\nodejs\;D:\Program Files\Open×××\bin;
最終執行命令 java -version 結果如下,正常。
關于“安裝多版本的 JDK 出現問題怎么辦”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。