Java无法为对象堆错误保留足够的空间

我在32位Windows和4 GB RAM上运行Java7,但是:

java -Xmx4G -Xms4G -jar Minecraft.jar java -Xmx3G -Xms3G -jar Minecraft.jar java -Xmx2G -Xms2G -jar Minecraft.jar 

……仍然无效。 错误:

VM初始化期间发生错误
无法为对象堆保留足够的空间
错误:无法创建Java虚拟机。
错误:发生了致命exception。 程序将会退出。

java -Xmx1G -Xms1G -jar Minecraft.jar正在运行。 为什么?

转到StartControl PanelSystemAdvanced system settingsadvanced(tab)Environment VariablesSystem VariablesNew

 Variable name: _JAVA_OPTIONS Variable value: -Xmx512M 

如果你通过java上的这个 IBM链接,它说在32位窗口上推荐的堆大小是1.5 GB,最大堆大小是1.8 GB。 所以你的jvm没有为-Xmx2G及以上版本进行初始化。

此外,如果您通过这个 SO答案,很明显DLL绑定是内存预留更改的问题,这不是一项简单的任务。 因此,建议您使用64位Windows和64位JVM。 虽然它会占用更多的RAM,但你将拥有更多连续的虚拟地址空间。

我有这个问题。 我通过下载64x的Java解决了这个问题。 这是链接: http : //javadl.sun.com/webapps/download/AutoDL?BundleId=87443

这对我来说是一个很容易解决的问题。

  1. 你必须确保你的系统有正确的java,如32位或64位。
  2. 如果你安装了正确的软件,它仍然比goto发生

    control panelsystem →Windows 8或Windows的advanced system settings

    control panelsystem and securitysystem →Windows 10的advanced system settings

  3. 您必须转到{高级选项卡},然后单击{环境变量}。
  4. 您将点击下的{新}
  5. 你将创建一个新变量。 变量名称: _JAVA_OPTIONS变量值: -Xmx512M

至少这对我有用。

4gb RAM并不意味着你可以将它全部用于java进程。 系统进程需要大量RAM。 不要超过2GB,否则会有些麻烦。

在启动jvm之前,只需检查可用的RAM数量,然后相应地设置内存。

确保它运行64位版本的java有这样的:

“c:\ Program Files \ Java \ jre7 \ bin \ java.exe”-Xmx1536M -Xms1536M -XX:MaxPermSize = 256M -jar forge-1.6.4-9.11.1.965-universal.jar

看看你安装的jre版本以防万一.. x64应该在程序文件中,而x32驻留在Program Files(x86)中

这对我java -Xmx3G -Xms3G (是的,我有同样的问题)是说像java -Xmx3G -Xms3G这样的东西放java -Xmx1024M所以run.bat应该看起来像java -Xmx1024M -jar craftbukkit.jar -o false PAUSE

双击Liferay CE服务器 – >将-XX:MaxHeapSize = 512m添加到Memory args – >启动服务器! 请享用…

这对我有用!