情况

情况是原本安装有jdk1.7,能正常运行,现在要升级到1.8.

直接在oracle的网站下载1.8安装后修改配置为1.8后:

能用javac编译成功,但java命令运行时报错:

Failed reading value of registry key:
        Software\JavaSoft\Java Runtime Enviroment\1.7\javaHome
Error:could not find java.dll

Error:could not find Java 2 Runtime Environment.

配置参数详细参考:

java实战(一)-----------jdk环境配置

原因

这种情况多数是因为系统中有多个jdk导致的。

注册表中是旧版本的注册信息,所以我们只修改配置是无效的。

解决方案

需要修改注册表。或者先把原jdk完全卸载后再安装新的,按步骤配置即可。

推荐卸载重装jdk,因为注册表需要修改的细节太多

卸载时在控制面板中找到卸载或更改程序。

建议全部卸载后再新装 需要的jdk版本。

卸载重装配置好后可能会遇到问题Error opening registry key'software\Javasoft\Java Runtime Environment'。

解决方法往下看。

修改注册表。

运行regedit打开注册表

找到

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit]

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in]

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]

分别把其中的版本修改成我们新安装的版本即可。

遇到问题Error: opening registry key

卸载后重装了1.8并且配置后之后又出现了新的问题。

Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

每个人的系统情况有所不同,以下列出了所有可能的解法,希望有一种适合你。

解法一path中的JAVA_HOME放到最前面

Path系统环境变量中,把%JAVA_HOME%\bin调整到最前面,使用path命令查看是否生效(不生效的需要注销或者重启)。

解法二注册表键名不对应

因为注册表中一个键项被本地化成中文名字了.
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\java运行时环境]
 改成:
 [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java   Runtime   Environment]
 windows开始菜单-> 运行-> 输入 "regedit ",然后回车-> ,按f3打开查找框-> 输入“java运行时环境”,找到之后,点右键-重命名为: "Java   Runtime   Environment ",然后再按f3,一直把找到的全部都改掉为止。

解法三注册表文件夹重复

注册表:HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\  路径下有两个文件夹,删掉一个就好了,这一点出现的比较少(未测试)。

解法四java.exe等在System32文件夹中出现

将C盘中Windows\System32和Windows\SysWOW64文件夹下的java.exe, javaw.exe and javaws.exe文件删掉即可。
PS:我的是这种方法解决的,这是win8的解决方案,如果是win7 64的,删掉Windows\System32下的java.exe, javaw.exe 就行了

运行成功

遇到问题---java---安装新版本jdk后Failed reading value of registry key的更多相关文章

  1. 安装多JDK后,java编译环境和运行环境版本(JDK版本) 不一致解决:

    由于之前安装过JDK1.7 ,现在一个项目是JDK1.5的,那么需要更改了环境变量了,此处不再赘述如何设置JDK 的环境变量了.然后网上找来方法: 在安装多个jdk后,出现了java -version ...

  2. [转载]Linux 卸载JDK并安装新版本JDK (rpm,tar)

    FROM:http://josh-persistence.iteye.com/blog/1908549 一.查看Jdk的安装路径: whereis javawhich java (java执行路径)e ...

  3. java安装以及jdk和jre安装(简单了解)

    轻松了解JDK是什么 什么是jdk? JDK是学好Java的第一步.不管是你要学习java编程,还是要搭建jsp web开发环境,或者是android开发环境都离不开它. jdk是什么呢?jdk的是j ...

  4. Java入门之JDK的安装和环境变量的配置

    Java的版本 1. Java SEjava se 以前称为J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.Java SE是基础包,但是也包含了支持 Jav ...

  5. Java - 安装jdk并设置环境变量

    前言 双十一买了台新的笔记本,需要重新安装下Java,这里记录下安装的过程,毕竟万事开头难,就算是老手也不一定能一次就把Java安装成功. 安装jdk 作为一名Java开发,当然是要安装jdk了,如果 ...

  6. 第一次尝试学习java 安装jdk 与配置环境变量 写第一个java程序 并运行

    第一次学习java,今天知道了java之父叫  詹姆斯.高司令 其它的记不住太多,首先我们先来安装jdk 百度搜索jdk12   (现在的jdk为12版本)安装稳定版 找到javaSE12X..  下 ...

  7. Android安装 sdk+jdk+Eclipse+Adt开发工具

    根据别人提供的手册和安装过程体验加以更新和详细描述 安装Android开发工具 开发Android应用程序的门坎并不高,因为Google已经为Android应用程序开发提供了免费而且跨平台的集成开发环 ...

  8. java安装和配置(3.18)

    大家好,我是一名笨笨的程序小白,刚刚学习完C#的基本开发,现在要开始学习java了!我希望在博客园里记录下我的学习日记,我也不敢保证自己会讲的东西多么全面,但是都是比较基础的东西,如果对你也有点点的小 ...

  9. (2)java安装配置

    java 分为三大类 javasSE,javaEE,javaME. javaSE:一般用于开发桌面软件,是java EE的基础类库 javaEE:用于开发网站 javaME:手机软件程序 javaSE ...

随机推荐

  1. kubernetes dashboard 安装时出现9090: getsockopt: connection refused错误

    转载于:https://blog.csdn.net/lucy06/article/details/79082302 安装kubernetes  dashboard时,出现错误: Error: 'dia ...

  2. django1.11入门

    快速安装指南¶ 在使用Django之前,您需要安装它.我们有 完整的安装指南,涵盖所有可能性; 本指南将指导您进行简单,最小化的安装,在您完成介绍时可以正常工作. 安装Python¶ 作为一个Pyth ...

  3. To Do List | 事实上是咕咕咕计划

    1.写一两篇关于数学的博文 类似于这种反演啥的或者说是FFT一些更本质的东西趴...反正是我根本不会的东西 再写一点自己会的东西趴...(好像也只有什么课本上的东西讲讲了,不过应该会写一些自己曾经发现 ...

  4. docker pull下来的镜像放哪儿了?

    本机docker版本 docker –version Docker version 1.进入docker 目录 root@Rightsec:~# cd /var/lib/docker root@Rig ...

  5. yum安装lnmp

    python其他知识目录 1.安装LNMP之前要安装EPEL,以便安装源以外的软件,如Nginx,phpMyAdmin等. yum install epel-release 提示:EPEL,即Extr ...

  6. learning of a previous team

     作为一个软件工程团队,离不开下面三个要素:支持,即分享.责任和合作. 分享是出色技术团队的另一个关键要素,它是团队的基石之一.只有通过分享,团队才有可能实现1+1 > 2这种效应,分享也是让团 ...

  7. 20162328蔡文琛 大二 十二周课上测试 hash

  8. 我是IT小小鸟读后感

    <我是一只IT小小鸟>一只是我想读list中一个本,但是上次去当当买的时候,竟然缺货了...昨天监考,实在无聊,就上网看电子书了,一天就看完了,看得有点仓促,所以理解估计不深. 1.刘帅: ...

  9. js中的let\var\const

    在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始 ...

  10. 数组 javaScript权威指南笔记

    创建数组 var a=[1,2,3,4] var arr=new Array() var arr=new Array(10);//创建长度为10的数组   var arr=new Array(1,2, ...