安装多版本的JDK出现问题怎么办
admin
2023-01-25 13:22:05
0

一,背景

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”,原来问题出在这个目录下;

经过排查发现,这个目录是个隐藏目录,可以通过命令提示符窗口进入

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

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命令,回车

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

让后一层层往下找:最终选中Java Runtime Environment

HKEY_LOCAL_MACHINE--->SOFTWARE--->JavaSoft--->Java Runtime Environment

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

这里可以看到,右边窗口中的名称一列有个CurrentVersion,双击CurrentVersion,进入编辑窗口;

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

修改好之后点击“确定”即可。

到此再回到命令提示符窗口,输入java -version命令,一切正常;

5,但是后来又打开了命令提示符窗口,输入java命令报错如下:

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

确认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出现问题怎么办

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...