设为首页 收藏本站
查看: 806|回复: 0

[经验分享] 安装多版本的JDK出现问题及解决办法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-21 08:53:02 | 显示全部楼层 |阅读模式
一,背景
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\OpenVPN\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\OpenVPN\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”,原来问题出在这个目录下;
经过排查发现,这个目录是个隐藏目录,可以通过命令提示符窗口进入
QQ截图20161021085229.png
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命令,回车
QQ截图20161021085235.png

让后一层层往下找:最终选中Java Runtime Environment
HKEY_LOCAL_MACHINE--->SOFTWARE--->JavaSoft--->Java Runtime Environment
QQ截图20161021085239.png

这里可以看到,右边窗口中的名称一列有个CurrentVersion,双击CurrentVersion,进入编辑窗口;
QQ截图20161021085243.png
修改好之后点击“确定”即可。
到此再回到命令提示符窗口,输入java -version命令,一切正常;
5,但是后来又打开了命令提示符窗口,输入java命令报错如下:
wKioL1gIekPAV3LkAAAYtTWdAJk009.jpg
确认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\OpenVPN\bin;

最终执行命令java -version结果如下,正常。
wKiom1gIemejvoqgAAAT_AJWN5w483.jpg

本文是自己现实中遇到的问题做了记录,供大家分享,如有不对之处,请指正;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-289158-1-1.html 上篇帖子: Neither the JAVA_HOME nor the JRE_HOME错误解决 下篇帖子: Tomcat实现日志分割
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表