Java打开注册表键时出错。

136

当我尝试在命令提示符中执行任何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,并在环境变量中设置了路径。有人知道如何解决这个问题吗?


我尝试通过命令提示符卸载Java,结果搞乱了我的卸载程序。所以我手动删除了文件夹并删除了与之相关的注册表项。然后我重新启动计算机并重新安装了Java,一切正常,直到下一次重启。 - gFu
2
你尝试在重启后重新安装了吗?也许第三次就会成功。 - Atreys
是的,我有,但仍然不起作用。 - gFu
你尝试过备份其他文件并重新格式化电脑吗?之后你可以进行Java的全新安装。但这种方法可能有些过头了。 - Atreys
1
通过下载运行时,我解决了我的特定问题,尽管我已经安装了JDK。我在这里留下来,以防这对其他人有用。 - Dave
16个回答

0
如果你的PATH中有"C:\ProgramData\Oracle\Java\javapath",只需确保java bin路径条目在此条目之前。
我遇到了完全相同的问题,我只是将java jdk/jre bin路径条目移到列表的上方,高于oracle条目,问题就解决了。

0

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

安装Java JRE 7 --> 离线 <-- 配置JAVA_HOME和Path = %JAVA_HOME%/bin;%PATH%


0

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

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

0

请确保从system32、SysWOW64中删除Java引用,并从ProgramData\Oracle\Java中删除javapath。这将解决该问题。


0

我按照上面的多个答案并解决了我的问题。

问题:

Javac来自jdk的版本是13,但Java使用的是jre中的1.8版本,因此Java抛出了不兼容的运行时错误。

解决方法:

在控制面板 -> 程序下:我卸载了1.8(名为Java 8 runtime),但没有触及另一个(名为Java (TM) SE Development Kit 13)。
从以下位置删除java.exe、javac.exe和javawc.exe文件: a. C:\Windows\system32 b. C:\Windows\SysWOW64 c. C:\ProgramData\Oracle\Java\javapath
环境变量JDK_HOME指向13,但JAVA_HOME指向1.8,所以我将JAVA_HOME也指向了13,即C:\Program Files\Java\jdk-13.0.1。
有一个Path变量位于用户变量和系统变量部分。对于用户变量部分的变量,我添加了字符串% JDK_HOME%,它自动转换为物理路径。对于系统变量下的那个路径,我删除了路径C:\ProgramData\Oracle\Java\javapath,并添加了C:\Program Files\Java\jdk-13.0.1\bin。
现在一切都好了!感谢所有回答的人,你们太棒了!

0
我使用的是Windows 7。在安装PyCharm后,我遇到了同样的问题。但我对PyCharm不满意,于是决定改用Eclipse。这时我发现我的JDK出了问题。我之前使用的是Java.9.x版本,所以我决定卸载它并获取更新的版本(当时是Java.11.x)。但问题仍然存在。
我按照帖子中提到的大多数步骤进行操作,例如: - 删除所有java*.exe文件, - 从注册表中删除与Java相关的条目。 - 清理所有不必要的Java文件夹。但是没有任何帮助。系统仍然有一些东西指向一个损坏的Java路径。
真正解决问题的方法如下: - 卸载当前版本的JDK。 - 重新安装出现问题之前的最新JDK版本。 - 正确卸载该版本。 - 安装最新版本的SDK。
就这样,一切都恢复正常了……除了Java.11.xx没有自动修复系统路径,我不得不手动修复。

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