Java 问题(不存在的 Java 运行时)

Leo*_*eon 19 java windows-7 installation

我目前在玩 Minecraft 时遇到问题。在我的电脑出现问题之前,我完美地玩了 Minecraft。现在,当我打开minecraft.exe文件(或尝试从开始菜单打开 Java 本身)时,它说 Java 存在问题:

注册表指的是不存在的 Java 运行时环境安装或运行时已损坏。该系统找不到指定的路径

我重新安装了 Java,但我的 Windows 安装程序似乎有问题:

“错误 1723。此 Windows Installer 程序包存在问题。无法运行完成此安装所需的 DLL。请联系您的支持人员或程序包供应商。”

我尝试重新安装 Windows 安装服务,但是这表示没有足够的空间(即使我的硬盘驱动器上有大约 12GB 的可用空间)。我不确定这是否是我尝试安装的正确文件,但我认为值得一试。

Cat*_*zle 26

这是我在 Windows 7 上所做的:

使用管理员帐户打开注册表编辑器 (regedit.exe)。

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment

对于此路径下的每个版本,验证 JavaHome 和 RuntimeLib 变量的路径是否正确。RuntimeLib 应该引用一个存在的jvm.dll文件,JavaHome 应该是这个路径的开始,\bin\client\jvm.dll去掉了部分。

如果您的注册表中有多个版本,而您的磁盘上没有与其中之一对应的 Java 版本,请删除多余的注册表项。

如果相应的 Java 版本位于磁盘上的另一个位置,请更新路径。对于您拥有的每个 Java 版本,您需要执行两次此操作(一次针对您拥有的特定构建(例如 1.7.0_04),一次针对基本版本(例如 1.7)。我的(但请注意,我安装到自定义位置)是:

  • 主页 C:\java\jre
  • 运行时库 C:\java\jre\7\bin\jvm.dll

我收到错误是因为我在安装后将软件移动到另一个目录。

  • 我的经验:如果一个 Java 版本在注册表中但不是没有你的硬盘,你需要删除它的注册表项。 (4认同)
  • @WilliamLeara 的解决方案对我有用。我在注册表中有 Java `jre1.8.0_65` 和 `jre1.8.0_121`,但在我的硬盘驱动器上我只有 `jre1.8.0_121`(`jre1.8.0_65` 也存在于我的硬盘驱动器上,但只有一个里面有 `lib` 文件。没有 `bin` 等......)。所以我从注册表中删除了 `jre1.8.0_65` 并且它起作用了。 (2认同)
  • 我在使用 DocFetcher 时遇到了同样的问题,在我的情况下,它是“Computer\HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit”,因为我通常安装完整的 JDK,所以它的条目无效。也不要忘记这个文件夹! (2认同)

n0p*_*0pe 4

尝试将 .exe 重命名为 .jar 人们也遇到了同样的问题,这似乎可以解决它。

尝试后,删除您拥有的每个 Java 实例,并使用 Java 网站上的软件包重新安装。确保它是正确的架构(32-64 位)。尝试使用 Windows Cleanup Utility 删除 Java,然后重新启动并重新安装。

编辑:想想看,当我运行 Windows 时,类似的事情也发生在我身上。尝试升级到最新版本的 Windows Installer。如果您已经是最新版本,请尝试重新安装。