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

问题

当我运行时,每次尝试运行程序时,我都会反复出现以下异常。

VM初始化期间发生错误无法为对象堆保留足够的空间无法创建Java虚拟机。

我试图增加我的虚拟内存(页面大小)和RAM大小,但无济于事。任何人都可以告诉我如何消除此错误?


#1 热门回答(177 赞)

运行JVM with-XX:MaxHeapSize=512m(或任何大数字)(或简称为-Xmx512m)


#2 热门回答(113 赞)

这也可能是因为在32位HotSpot vm上设置了太大的东西,例如:

-Xms1536m -Xmx1536m

这可能是什么/将工作:

-Xms1336m -Xmx1336m

#3 热门回答(40 赞)

我在使用javac时碰到了这个问题,而且它似乎没有在命令行选项中找到,

-bash-3.2$ javac -Xmx256M HelloWorldApp.java 
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

所以这里的解决方案就是设置_JAVA_OPTIONS

-bash-3.2$ export _JAVA_OPTIONS="-Xmx256M"
-bash-3.2$ javac HelloWorldApp.java 
Picked up _JAVA_OPTIONS: -Xmx256M

这编译好了。

在具有大量内存但具有较低内存ulimits的计算机上,这种情况发生在我身上。 Java决定分配一个大堆,因为它检测到机器中的ram,但由于ulimits不允许分配它。