遇到问题---java---安装新版本jdk后Failed reading value of registry key
情况
情况是原本安装有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.
配置参数详细参考:
原因
这种情况多数是因为系统中有多个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的更多相关文章
- 安装多JDK后,java编译环境和运行环境版本(JDK版本) 不一致解决:
由于之前安装过JDK1.7 ,现在一个项目是JDK1.5的,那么需要更改了环境变量了,此处不再赘述如何设置JDK 的环境变量了.然后网上找来方法: 在安装多个jdk后,出现了java -version ...
- [转载]Linux 卸载JDK并安装新版本JDK (rpm,tar)
FROM:http://josh-persistence.iteye.com/blog/1908549 一.查看Jdk的安装路径: whereis javawhich java (java执行路径)e ...
- java安装以及jdk和jre安装(简单了解)
轻松了解JDK是什么 什么是jdk? JDK是学好Java的第一步.不管是你要学习java编程,还是要搭建jsp web开发环境,或者是android开发环境都离不开它. jdk是什么呢?jdk的是j ...
- Java入门之JDK的安装和环境变量的配置
Java的版本 1. Java SEjava se 以前称为J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序.Java SE是基础包,但是也包含了支持 Jav ...
- Java - 安装jdk并设置环境变量
前言 双十一买了台新的笔记本,需要重新安装下Java,这里记录下安装的过程,毕竟万事开头难,就算是老手也不一定能一次就把Java安装成功. 安装jdk 作为一名Java开发,当然是要安装jdk了,如果 ...
- 第一次尝试学习java 安装jdk 与配置环境变量 写第一个java程序 并运行
第一次学习java,今天知道了java之父叫 詹姆斯.高司令 其它的记不住太多,首先我们先来安装jdk 百度搜索jdk12 (现在的jdk为12版本)安装稳定版 找到javaSE12X.. 下 ...
- Android安装 sdk+jdk+Eclipse+Adt开发工具
根据别人提供的手册和安装过程体验加以更新和详细描述 安装Android开发工具 开发Android应用程序的门坎并不高,因为Google已经为Android应用程序开发提供了免费而且跨平台的集成开发环 ...
- java安装和配置(3.18)
大家好,我是一名笨笨的程序小白,刚刚学习完C#的基本开发,现在要开始学习java了!我希望在博客园里记录下我的学习日记,我也不敢保证自己会讲的东西多么全面,但是都是比较基础的东西,如果对你也有点点的小 ...
- (2)java安装配置
java 分为三大类 javasSE,javaEE,javaME. javaSE:一般用于开发桌面软件,是java EE的基础类库 javaEE:用于开发网站 javaME:手机软件程序 javaSE ...
随机推荐
- maven scope属性值设置含义
1.枚举各个属性值的含义 compile,缺省值,适用于所有阶段,会打包进项目. provided,类似compile,期望JDK.容器或使用者会提供这个依赖. runtime,只在运行时使用,如JD ...
- web小结
一.ajax 1.用于前端向服务器异步获取数据 json数组:可以直接通过数组下标获取到值 json对象:可以用“data.xx”获取到值 2.注意事项 同时请求两个ajax时,容易出现异常,第一个a ...
- 【视频编解码·学习笔记】13. 提取PPS信息程序
PPS结构解析 与之前解析SPS方式类似 一.定义PPS类: 在3.NAL Unit目录下,新建PicParamSet.cpp和PicParamSet.h,在这两个文件中写入类的定义和函数实现. 类定 ...
- windows 7 php 7.1 命令行 执行 中文文件名 的PHP文件
在PHP5.6时代直接执行 php.exe 文件.php 是没有的这个问题 在win下的命令行中 活动代码页命令 chcp 修改 chcp 936 //gbk chcp 65001 //utf-8 ...
- HDU 1565 方格取数(1) 轮廓线dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1565 方格取数(1) Time Limit: 10000/5000 MS (Java/Others) ...
- 第一次spring冲刺第5天
今天进行讨论基础功能的核心代码方面,还有简单的讨论继续关于界面的美化, 计算生成的答案功能 public class Core {// char[]h={'+','-','*','/'};int re ...
- mac下使用marsedit写博客
在Windows习惯了使用Windows live write写好博客,然后发布上去,到了mac下,发现了一个很好的替代品 MarseEdit 下载安装后,打开出现如下解码,选择 I already ...
- 6/12 sprint2 看板和燃尽图的更新
- 蜗牛慢慢爬 LeetCode 9. Palindrome Number [Difficulty: Easy]
题目 Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could nega ...
- vsftpd的配置文件说明
vsftpd的配置文件说明: vsftpd.ftpusers:位于/etc目录下.它指定了哪些用户账户不能访问FTP服务器,例如root等. vsftpd.user_list:位于/etc目录下.该文 ...