安装多版本的JDK出现问题怎么办

70次阅读
没有评论

共计 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 出现问题怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计3488字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)