“VM初始化期间发生错误; 无法为对象堆预留足够的空间

首先,我有一个8gb的内存盒,所以我怀疑总内存是问题。 此应用程序在6GB或更低的机器上运行良好。

我试图在Eclipse的运行配置中的“虚拟机参数”下使用-Xmx3G保留3GB的空间。

每次尝试保留超过1500mb时,都会出现此错误:“虚拟机初始化期间发生错误; 使用-Xmx3G无法为对象堆预留足够的空间

这里发生了什么?


难道你在那台机器上使用32位的jvm?


这实际上不是Eclipse特有的问题; 这是一个普通的Java-on-Windows问题。 这是因为JVM如何在Windows上分配内存; 它坚持要分配一块连续的内存块,即使有足够的单独块来满足分配请求,这往往是Windows无法提供的。 有些实用程序会试图帮助Windows对其内存进行“碎片整理”,理论上可以帮助这种情况; 但我没有真正地尝试过它们,所以不能说出它们的有效性。 我曾经听说过有时可能会帮助的一件事是重新启动Windows,在启动任何其他应用程序之前,启动需要大量内存的Java应用程序。 如果幸运的话,Windows将不会碎片化它的内存空间,而Java将获得要求的连续块。

互联网上的某处有更多关于这个问题的技术解释和分析,但我没有任何参考。

但是,我确实发现了这一点,它看起来很有用:https://stackoverflow.com/a/497757/639520


这里是如何解决它: 转到 Start->Control Panel->System->Advanced(tab)->Environment Variables->System

Variables->New:
Variable name: _JAVA_OPTIONS   
Variable value: -Xmx512M

Variable name: Path  
Variable value: ;C:Program FilesJavajre6bin;F:JDKbin;  

将其更改为适当的路径

链接地址: http://www.djcxy.com/p/82901.html

上一篇: “Error occurred during initialization of VM; Could not reserve enough space for object heap” using

下一篇: Java: what determines the maximum max heap size possible in a linux machine