打开注册表项时出错

当我在命令提示符下尝试使用 Java 做任何事情时,都会出现这样的错误:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3'
Error: could not find Java.dll
Error: could not find Java 2 Runtime Environment

几天前我确实删除了 Java 目录和注册表。我重新启动计算机和 Java 仍然工作良好,然后我今天重新启动它,现在我得到这个错误。我试过卸载和重新安装,但似乎没有工作。我已经安装了最新的 java JRE,并在环境变量中设置了路径。有人知道怎么修吗?

222211 次浏览

确保从 Windows\System32文件夹中删除任何 java.exejavaw.exejavaws.exe,如果你有一个 x64系统(Win 764位) ,也在 Windows\SysWOW64下做同样的事情。

如果在这些位置找不到它们,请尝试从 C:\ProgramData\Oracle\Java\javapath中删除它们。

我也有过类似的问题。我已经安装了 JDK7更新1,但不能使用它(可能是因为我发现了一个在安装 JDK7后删除的 JRE6)。卸载 JDK7是不可能的。解决方案是手动添加 JRE 注册表项。

[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
"CurrentVersion"="1.7"


[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"


[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7.0_01]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"

您必须将上面的代码调整为您自己的目录和版本。

如果这没有帮助,还有 JavaRahttps://singularlabs.com/software/javara/

我会标记这作为一个评论,但不能(没有代表)只是想感谢 Tilman。我试图让 PDFsam (PDF 分割和合并)工作,但没有用。

在启动时,它会产生一个错误,说明它找不到 JRE1.6.0。我有两个32位和64位版本,他们检查出在 Java 网站在各自的浏览器罚款。

尝试重复卸载/重新安装和重新启动以及使用 JavaRa。没有这样的运气,仍然没有去。

我看了这篇文章后,在注册表中没有... 软件 JavaSoft 关键字,所以我添加了各自的字符串值指向我的 x86版本(PDFsam 是一个32位程序)。这解决了第一个问题,但是关于 amd64库出现了一个错误,表明机器想要运行64位版本。所以我改变了64位 JRE 的路径,PDFsam 现在可以工作了。

仅供参考——我是在无法从命令提示符启动 javaw.exe (即使在系统路径中添加了必要的路径)之后通过搜索 Java 注册表项到达这里的,使得上述更改也解决了这个问题。

确保从系统中删除任何 java.exe、 javaw.exe 和 javaws.exe。

  • 如果您有一个 x32系统(WinXP32位) WindowsSystem32文件夹

  • 如果您有一个 x64系统(Win 764位) ,也可以在 WindowsSysWOW64文件夹下执行同样的操作

如果病毒扫描程序(如 McAfee)正在运行,请尝试:

  1. 关闭病毒扫描器
  2. 卸载 Java (通过控制面板/程序和功能)
  3. 重新安装 Java (从 Java.com)
  4. 重新启动病毒扫描器

卸载 Java (通过控制面板/程序和功能)

安装 JavaJRE7—— > OffLINE < —— 配置 JAVA _ HOME 和 Path = %JAVA_HOME%/bin;%PATH%

之前 nI 使用 JDK 1.7时出现了这种错误,我安装了 JAVA JDK 1.8,并将 JAVA _ HOME 和 PATH 变量指向 JAVA 1.8版本。当我试图找到 Java 版本时,我得到了这个错误。我重启了我的机器,它还能用。似乎我们必须在修改环境变量之后重新启动机器。

您将在安装的 Windows 驱动器的 ProgramData 文件夹中找到一个名为“ 神使”的文件夹。删除文件夹。希望能成功。 在我的例子中,我的安装驱动器是 C,我的路径是 < strong > C: ProgramData Oracle

有三个地方需要检查

  1. 注册表 HKEY _ LOCAL _ MACHINE 软件 JavaSoft JRE 1.8.0 _ xxx JavaHome
  2. 控制面板-标签-视图-路径
  3. 环境变量-路径($env: Path)

所有3个必须对齐(如果你有多个整体,只是删除错误的)-这一切

我也一样:

Error opening registry key 'Software\JavaSoft\Java Runtime Environment

清除 WindowsSysWOW64对 Win7没有帮助

在我的情况下,离线安装 JDK8有所帮助(从 链接)

在 Windows10上,我刚刚安装了 JDK,在检查版本时出现了这些错误。我必须从 C:\ProgramData\Oracle\Java\javapath中删除以 java开头的所有可执行文件(即 java.exejavaw.exejavaws.exe)。然后,删除后,重新运行 JDK 安装程序,重新启动终端程序,java -v就可以工作了。

我有 Windows7。安装后我也遇到了同样的问题: PyCharm。 我对 PyCharm 不满意,所以决定改用 Eclipse。这时我发现我的 JDK 出了问题。我以前用的是 Java 9.x。所以我决定卸载它,并得到更新的版本(在我的时间是 Java 11.x。同样的问题依然存在。 我遵循了上面提到的大部分步骤,比如: - 删除所有 java * . exe 文件, - 从注册表中删除与 Java 相关的条目。 - 清理所有不必要的 Java 文件夹。然而,没有任何帮助。我在系统里还有一些东西指向一个坏掉的 Java 路径名。

真正带来补救的是以下几点: 卸载任何版本的 JDK,我现在有。 - 重新安装了问题发生前的最后一个 JDK 版本 - 正确卸载该版本。 - 安装任何最新版本的 SDK. 。

就是这样。.在这一点上一切都恢复正常... 除了那个 Java.11。Xx 没有自动修复系统路径,我只能手动修复。

删除本地路径 C 中的这3个文件: ProgramDataOracleJavajavapath

java.exe
javaw.exe
javaws.exe

这为我解决了问题:)

我遵循上面的多个答案,解决了我的问题。

问题:

Javac 在 jdk 的13上,但是 java 使用的是 jre 的1.8,所以 java 抛出了不兼容的运行时错误

解决方案:

  1. 在控制面板-> 程序: 我卸载了1.8(命名为 Java 8运行时) ,并没有触及另一个(命名为 Java (TM) SE 开发工具包13)

  2. 删除 java.exe、 javac.exe 和 javawc.exe 文件: 视窗系统32 Bc: Windows SysWOW64 C: ProgramData Oracle Java javapath

  3. 环境变量 JDK _ HOME 指向13,而 JAVA _ HOME 指向1.8,所以我指向 JAVA _ HOME 也使用13,即 C: Program Files JAVA JDK-13.0.1

  4. 在用户变量和系统变量部分都有一个 Path 变量。 对于用户变量部分,我添加了字符串% JDK _ HOME%-它自动转换为物理路径。 对于系统变量下的那个,我删除了路径 C: ProgramData Oracle Java javapath,并添加了 C: Program Files Java jdk-13.0.1 bin

现在一切都好了! 感谢所有接电话的人,你太棒了!

确保从 system32、 SysWOW64中删除 Java 引用,并从 ProgramDataOracleJava 中删除 javapath

如果在 PATH 中有“ C: ProgramData Oracle Java javapath”,只需确保在 PATH 中的这个条目之前存在 Java bin 路径条目。

我当时面临着完全相同的问题,我只是将 java jdk/jre bin 路径条目移到了列表的上方,位于 Oracle 条目的上方,它解决了我的问题。