Java 无法为对象堆错误保留足够的空间
Posted
技术标签:
【中文标题】Java 无法为对象堆错误保留足够的空间【英文标题】:Java Could not reserve enough space for object heap error 【发布时间】:2013-08-05 02:37:29 【问题描述】:我在 32 位 Windows 和 4 GB RAM 上运行 Java7,但是:
java -Xmx4G -Xms4G -jar Minecraft.jar
java -Xmx3G -Xms3G -jar Minecraft.jar
java -Xmx2G -Xms2G -jar Minecraft.jar
...还是不行。错误:
虚拟机初始化过程中发生错误 无法为对象堆保留足够的空间 错误:无法创建 Java 虚拟机。 错误:发生了致命异常。程序将会退出。
java -Xmx1G -Xms1G -jar Minecraft.jar
正在工作。为什么?
【问题讨论】:
Oracle Java FAQ 对此进行了解释 - oracle.com/technetwork/java/… 一些更详细的答案可以在***.com/questions/171205/…找到 如果你安装64位版本的java,它会直接工作。 【参考方案1】:转到Start
→Control Panel
→System
→Advanced system settings
→advanced(tab)
→Environment Variables
→System Variables
→New
:
Variable name: _JAVA_OPTIONS
Variable value: -Xmx512M
【讨论】:
避免配置这么多工具的好方法。谢谢。我试图在 VM 实例上配置标志,但可以肯定我做错了。使用系统变量要好得多,而且只需一次。谢谢。 这就像一个魅力。我在 IntelliJ 中构建,但不得不重新启动程序【参考方案2】:如果您通过 java 上的 this IBM 链接,它说在 32 位 Windows 上推荐的堆大小为 1.5 GB,最大堆大小为 1.8 GB。因此,您的 jvm 不会为 -Xmx2G
及更高版本初始化。
此外,如果您通过this SO 回答,显然 DLL 绑定是内存预留更改的问题,这不是一项简单的任务。因此,可能建议您使用 64 位 Windows 和 64 位 JVM。虽然它会占用更多 RAM,但您将拥有更多连续的虚拟地址空间。
【讨论】:
java -Xmx1240m -Xms1240m -jar Minecraft.jar 仍然不起作用。 @KemalTunca 尝试 java -Xmx1240m -jar Minecraft.jar【参考方案3】:这发生在我身上,而且很容易解决。
-
您必须确保您的系统具有正确的 Java,例如 32 位或 64 位。
如果你已经安装了正确的软件,但它仍然比 goto 发生
control panel
→ system
→ advanced system settings
适用于 Windows 8 或
control panel
→ system and security
→ system
→ advanced system settings
适用于 Windows 10。
<system variables>
下的新建
您将创建一个新变量。变量名:_JAVA_OPTIONS
变量值:-Xmx512M
至少这对我有用。
【讨论】:
这就像一个魅力。我在 IntelliJ 中构建,但不得不重新启动程序。【参考方案4】:我遇到了这个问题。我通过下载 64 倍的 Java 解决了这个问题。这是链接:http://javadl.sun.com/webapps/download/AutoDL?BundleId=87443
【讨论】:
设置更少的内存对我来说根本不起作用,但这立即奏效了。【参考方案5】:为了确保它运行 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应该在程序文件中(x86)
【讨论】:
您错过了-d64
运算符【参考方案6】:
4gb RAM 并不意味着您可以将其全部用于 java 进程。系统进程需要大量 RAM。 不要超过2GB,否则会有些麻烦。
在启动 jvm 之前,只需检查有多少 RAM 可用,然后相应地设置内存。
【讨论】:
java -Xmx1240m -Xms1240m -jar Minecraft.jar 仍然不起作用。 在启动jvm之前,可以在任务管理器中查看,有多少内存可用?【参考方案7】:这对我有用(是的,我遇到了同样的问题)
是说类似java -Xmx3G -Xms3G
put java -Xmx1024M
所以 run.bat 应该看起来像
java -Xmx1024M -jar craftbukkit.jar -o false
PAUSE
【讨论】:
【参考方案8】:双击Liferay CE Server -> 将-XX:MaxHeapSize=512m 添加到Memory args -> 启动服务器! 享受...
这对我有用!
【讨论】:
以上是关于Java 无法为对象堆错误保留足够的空间的主要内容,如果未能解决你的问题,请参考以下文章
elasticsearch安装插件:无法为对象堆保留足够的空间
在 Intellij IDEA 中不断出现 Gradle 错误“无法为对象堆保留足够的空间”