Java错误:无法打开注册表项“Software\JavaSoft\Java Runtime Environment”。

6
在 Windows 7 命令提示符中运行 "java -version",我得到以下结果:
Error: opening registry key 'Software\JavaSoft\Java Runtime Environment'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.

我已经检查了环境变量:

JAVA_HOME = C:\Program Files\Java\jdk1.8.0_212\bin

PATH 包括 "%JAVA_HOME%"。

我还试图删除以下文件: ProgramData\Oracle\JAVA\Javapath 中的 java.exe、javaw.exe 和 javaws.exe。 但是,它们无法被删除。 尽管我是管理员。

我还检查了 C:\Windows\System32C:\Windows\SYSWOW64 ,没有找到要删除的 java.exe、javaw.exe 或 javaws.exe。

我还能尝试什么?


2
可能是检查Java版本时出错:找不到java.dll的重复问题。 - George Z.
@MarkRotteveel 是的 - monkey123
1
  1. 你是否安装了多个Java?
  2. 注册表键中有什么?注册表键中指定的版本是否与你的JDK/JRE文件夹名称匹配?
  3. JAVA_HOME应该是路径,不包括bin,而PATH应该包括bin,如%JAVA_HOME%/bin
  4. PATH中是否有重复条目,以及用户和系统变量之间是否存在重复?
  5. 你能否直接进入JDK/JRE bin目录,其中包含java可执行文件,并运行java -version
- fiveelements
对于路径,是%JAVA_HOME%/bin还是%JAVA_HOME%\bin?(使用正斜杠还是反斜杠) - monkey123
@fiveelements,JavaSoft文件夹在该位置缺失。 - monkey123
显示剩余8条评论
3个回答

2
  1. 您是否安装了多个Java版本?
  2. 注册表中有什么内容?注册表中指定的版本是否与您的JDK/JRE文件夹名称匹配?使用regedit命令打开注册表,查找您在问题中提到的键(HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\CurrentVersion)。如果存在差异,请清理/更正版本。
  3. JAVA_HOME应该是不包含bin的路径,而PATH应该包括%JAVA_HOME%\bin
  4. PATH中是否存在重复条目,以及用户和系统环境变量之间是否存在重复?
  5. 您能否直接进入JDK/JRE bin目录,即java可执行文件所在的位置,并运行java -version
  6. 最后,我希望您查看C:\Windows\System32C:\Windows\SYSWOW64目录,并删除java.exe和相关文件。

1

当您使用的软件为32位版本,而您安装的Java为64位版本且与您想要使用的现有软件不兼容时,也会出现此错误。您可以卸载64位版本并安装32位版本来解决此问题。


1
这是我卸载旧版Oracle Java时发生的事情。注册表键已被删除,但一个Java可执行文件仍然存在于一个隐藏的文件夹中。为了进行适当的清理:
(在Windows上): where java将显示快捷方式的位置,例如C:\ProgramData\Oracle\Java\javapath\java.exe(请注意,这是一个隐藏的文件夹)。
假设您想摆脱旧版Java,您可以删除此文件夹和相应的路径条目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接