繁体   English   中英

Java 错误打开注册表项“软件\JavaSoft\Java 运行时环境”

[英]Java Error opening registry key 'Software\JavaSoft\Java Runtime Environment'

在命令提示符 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。

我还能尝试什么?

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

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

当我卸载旧的 Oracle 版本的 Java 时,这发生在我身上。 注册表项已删除,但 Java 可执行文件仍保留在隐藏文件夹中。 进行适当的清理

(在 Windows 上):

where java将显示快捷方式的位置,例如C:\ProgramData\Oracle\Java\javapath\java.exe (注意这是一个隐藏文件夹)。

假设你想摆脱旧的 Java 版本,你可以删除这个文件夹,以及相应的路径条目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM