修复无法在 Windows 10 中创建 Java 虚拟机

通常情况下,成功安装 Java 后,所有基于 Java 的应用或游戏都应该能稳定运行。 然而,最近有用户反映,在尝试启动如 Minecraft 等 Java 程序时,遇到了“无法创建 Java 虚拟机”的错误。 这表明用于运行 Java 程序的虚拟机并没有被正确地初始化。 如果您也正为此问题困扰,那么本文将为您提供全面的解决方案,助您修复“无法创建 Java 虚拟机”的错误。

解决 Windows 10 中 Java 虚拟机创建失败的问题

当在集成开发环境 (IDE) 中编译代码时,经常会遇到 “无法创建 Java 虚拟机” 这样的错误提示。 该错误通常由以下几种原因引起:

  • Java 启动参数不正确: 无论是您自行开发的应用还是开源程序,不正确的启动参数都可能导致此错误,甚至可能造成系统不稳定。

  • Java 堆内存不足: 当程序试图使用超出系统变量中设定的最大堆内存时,就会出现此错误。

  • Java 可执行文件权限不足: 运行需要管理员权限才能正常工作的应用程序时,也可能会触发此错误。

现在我们已经了解了此错误背后的常见原因。Java 用户还可能遇到其他类似问题,比如 Java 虚拟机启动器错误,这通常也是由 Java 安装问题导致的。 接下来,我们将重点介绍修复“无法创建 Java 虚拟机”错误的方法。

初步排查步骤

  • 检查启动参数: 仔细检查您所指定的启动参数。即使您使用的是正确的 Java 版本,启动设置也可能导致编译时使用错误的版本。如果您最近进行了 Java 就地更新,启动参数很可能仍然指向旧版本。

  • 检查语法: 确保您的参数语法完全正确。即使是细微的语法错误也可能触发“无法创建 Java 虚拟机”的错误。请特别注意检查是否有额外的连字符或不正确的版本记录。

  • 检查 JDK 是否损坏: 损坏的 Java 开发工具包 (JDK) 也可能导致此错误。 您可以通过以下步骤来检查 JDK 是否损坏:

1. 按下 Windows 键,输入 “命令提示符”,然后点击 “以管理员身份运行”。

2. 在命令提示符中输入 c:> java -version 并按回车键。

3. 如果执行命令时出现错误,请重新安装 JDK。 检查重新安装 JDK 是否可以解决问题。如果问题依然存在,请尝试本文中列出的其他修复方法。

方法一:以管理员模式运行 Java

在 Windows PC 上,某些应用程序如果缺乏必要的管理员权限,可能会运行不稳定,并可能导致包括 “无法创建 Java 虚拟机” 在内的各种问题。通过强制让主要的 Java 可执行文件 (java.exe) 以管理员权限运行,可以有效地解决这个问题。 请按照以下步骤操作:

1. 按下 Windows + E 键,打开文件资源管理器。

2. 在文件资源管理器中,找到 java.exe。 该文件通常位于以下路径:

C:Program FilesJava*JRE build version*bin

其中 JRE build version 因您安装的 Java 版本而异。

或者,可能位于:

C:Program Files(x86)Common FilesOracleJavajavapath

注意:如果您将 Java 安装在其他位置,请根据您的安装路径找到 Java.exe

3. 右键点击 Java.exe,选择 “属性” 以打开属性窗口。

4. 转到 “兼容性” 选项卡,勾选 “以管理员身份运行此程序” 的复选框,如图所示。

5. 点击 “应用” 和 “确定” 以保存更改。

现在,每次打开 Java 时,它都将以管理员权限运行。

方法 2:增加 Java 堆大小

当 Java 系统内存不足,无法启动虚拟机客户端时,也可能会出现此错误。 Java 默认配置使用最大堆大小,当运行超过堆大小限制的应用程序时,就会引发错误。 创建新的系统变量以增加可用内存或许可以解决此问题。请按照以下步骤操作:

1. 同时按下 Windows + R 键,打开 “运行” 对话框。

2. 输入 sysdm.cpl 并按回车键,打开 “系统属性” 窗口。

3. 转到 “高级” 选项卡。

4. 点击 “环境变量…” 按钮,如图所示。

5. 在 “环境变量” 窗口中,点击 “系统变量” 下的 “新建…” 按钮。

6. 在 “新建系统变量” 弹出窗口中,将 “变量名” 设置为 _JAVA_OPTIONS,将 “变量值” 设置为 –Xmx512M。 点击 “确定” 以保存更改。

注意:如果错误仍然存在,您可以通过将 “变量值” 设置为 –Xmx1024M 而不是 –Xmx512M,来进一步增加内存,如步骤 6 所示。

方法三:修改 Java 代码

一些用户反馈,通过对代码进行一些简单的修改,就能够解决此错误。 其中一些方法如下:

1. 将代码中的双连字符替换为单连字符,有时候可以解决问题。

  • 带有双连字符的代码:
[email protected]:~$ java –version
Picked up JAVA_TOOL_OPTIONS: –javaagent:/usr/share/java/jayatanaag.jar
Unrecognized option: –version
  • 带有单连字符的相同代码:
[email protected]:~$ java -version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Unrecognized option: -version

2. 另外,考虑从您的参数中删除以下短语:

-Djava.endorsed.dirs="C:Program FilesApache Software FoundationTomcat 8.5endorsed"

3. 确保在 eclipse.ini 文件中,将 -vm 条目放在 vm args 上方,否则将会在环境变量中选择 JVM V6。

注意:如果您使用的是 Ubuntu 系统,请注意该系统仅支持 Java 8。因此,您可以按照方法三中的建议卸载 Java,然后安装旧版本。

方法四:修改 Eclipse.ini 文件

如果您使用的是 Eclipse IDE,对 eclipse.ini 文件进行一些修改可能有助于修复 “无法创建 Java 虚拟机” 的错误。

注意: eclipse.ini 文件位于您安装 Eclipse 的目录内的 Eclipse 文件夹中。

第一步:减少内存使用

1. 右键点击 eclipse.ini 文件,选择 “打开方式” > “记事本”。

2. 查找匹配 -Xmx256m 的行。

注意:也可能是 -Xmx1024m-Xmx 512m

3. 将默认值修改为与您的 PC RAM 更兼容的值,同时添加版本号。

例如:

-Xmx512m
-Dosgi.requiredJavaVersion=1.6

或者:

-Xmx512m
-Dosgi.requiredJavaVersion=1.7

或者:

-Xmx512m
-Dosgi.requiredJavaVersion=1.8

4. 尝试从 -launcher.XXMaxPermSize 行中删除 256m 的值。

第二步:附加修改

1. 如果可能,从文件中删除以下行:

-vm P:Programsjdk1.6bin

2. 用以下代码替换下面的行:

set -Dosgi.requiredJavaVersion=1.5

替换为:

set -Dosgi.requiredJavaVersion=1.6.

3. 尝试添加以下行:

-vm C:Program Files (x86)Javajre6binjavaw.exe

4. 通过以下行引用 JVM.dll

-vm
C:Program FilesJavajre7binclientjvm.dll

5. 将 -vmargs 替换为 eclipse.ini 文件中 javaw.exe 的路径。

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
-product
com.android.ide.eclipse.adt.package.product
--launcher.XXMaxPermSize
256M
-showsplash
com.android.ide.eclipse.adt.package.product
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
**-vm "c:Program FilesJavajdk1.7.0_07binjavaw.exe"**
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx768m
-Declipse.buildId=v21.1.0-569685

6. 将以下行放在 eclipse.ini 文件的末尾,并检查是否有效:

-vmargs
-Xms40m
-Xmx512m
-XX:MaxPermSize=256m

7. 从 eclipse.ini 中删除以下行,检查是否解决了问题:

-XX:+UseStringDeduplication
-XX:+UseG1GC

注意:如果问题仍然存在,请尝试删除 eclipse.ini 文件,但请事先备份。此外,在启动 Java 之前关闭所有占用大量内存的应用程序。

方法 5:重新安装 Java

在某些情况下,该问题可能源于 Java 安装不正确或安装过程中的损坏。因此,在此步骤中,我们将完全卸载 Java,然后重新安装。 具体步骤如下:

1. 同时按下 Windows + R 键,打开 “运行” 对话框。

2. 输入 Appwiz.cpl 并点击 “确定”,以启动 “程序和功能”。

3. 在已安装的应用程序列表中,找到 Java。

4. 右键点击 Java,并选择 “卸载” 以卸载 Java。

注意:您还应该卸载其他 Java 开发工具包和更新。

5. 等待卸载过程完成,然后重新启动您的 PC。

6. 前往 Java 下载页面,下载最新版本的 Java 运行时环境 (JRE)。

注意 1:如果重新安装 Java 运行时环境无法解决问题,请下载最新版本的 JDK。

注意 2:如果您已经安装了 JDK,请尝试使用不同的版本或删除 JDK 自带的 Java 运行时环境。

常见问题 (FAQ)

Q1: 提示 “无法构造 Java 虚拟机” 是什么意思?

答: Java 虚拟机使用 -Xmx 选项来指定最大堆内存大小。 eclipse.ini 文件中的 -Xmx 选项可能设置得过高,导致当前环境无法满足,从而出现此错误。

Q2: 什么是 Java 虚拟机?

答:Java 虚拟机 (JVM) 是一种程序,它允许计算机运行 Java 程序和其他已翻译成 Java 字节码的语言。 JVM 的功能由正式描述 JVM 实现要求的标准来定义。

Q3: Java 可以免费获取吗?

答: 要安装 Java,您需要首先下载 Oracle 安装程序。 在下载页面下拉菜单中选择 “免费 Java 下载”。 之后,您需要阅读并接受最终用户许可协议。

***

我们希望本指南能够帮助您解决 “无法创建 Java 虚拟机” 的问题。 请告诉我们哪种方法最适合您。 如果您有任何疑问或建议,欢迎在评论区留言。