首先,我有一个装有8gb ram的盒子,所以我怀疑总内存是问题所在。此应用程序在6gb或更少的计算机上运行良好。
我正在尝试在Eclipse的“运行配置”中的“ VM参数”下使用-Xmx3G保留3GB的空间。
每次我尝试保留1500mb以上时,都会出现以下错误:“ VM初始化期间发生错误;-Xmx3G无法为对象堆保留足够的空间”
这里发生了什么?
首先,我有一个装有8gb ram的盒子,所以我怀疑总内存是问题所在。此应用程序在6gb或更少的计算机上运行良好。
我正在尝试在Eclipse的“运行配置”中的“ VM参数”下使用-Xmx3G保留3GB的空间。
每次我尝试保留1500mb以上时,都会出现以下错误:“ VM初始化期间发生错误;-Xmx3G无法为对象堆保留足够的空间”
这里发生了什么?
Answers:
可能是您在该计算机上使用的是32位jvm吗?
解决方法如下:
转到 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 Files\Java\jre6\bin;F:\JDK\bin;
将此更改为适当的路径。
实际上,这不是特定于Eclipse的问题。这是Windows上的一般Java问题。这是因为JVM在Windows上如何分配内存。它坚持要分配一个连续的内存块,即使有足够多的单独块来满足分配请求,Windows经常不能提供这些内存。有一些实用程序将尝试帮助Windows“整理”其内存,从理论上讲,这将有助于解决这种情况。但是我还没有真正认真地尝试过它们,所以不能说出它们的有效性。有时我听到的一件事可能会有所帮助,那就是重新启动Windows,然后在启动任何其他应用程序之前启动需要大量内存的Java应用程序。如果幸运的话,Windows尚不会碎片化其内存空间,而Java将获得所需的连续块。
在互连网上的某个地方,有更多关于此问题的技术说明和分析,但我没有任何方便的参考资料。
我确实发现了这一点,它看起来很有帮助:https : //stackoverflow.com/a/497757/639520
我在Eclipse IDE中将Liferay与Tomcat服务器一起使用。单击服务器启动时,我也遇到了同样的错误。从eclipse双击服务器。它打开服务器概述页面。将内存参数从-Xmx1024m -XX:MaxPermSize = 256m更新为-Xmx512m -XX:MaxPermSize = 256m。然后它为我工作。
确保Eclipse实际上正在运行您认为正在运行的同一JVM。如果您曾经在网络浏览器中使用过Java,则可能还会有一个32位版本的浮动版本,如果最近安装或更新了它,则该版本可能会优先。
绝对可以肯定,我建议将这两行添加到eclipse.ini
文件的顶部:
-vm
C:/Java/jdk1.6.0_27/bin
...我的机器C:/Java/jdk1.6.0_27/bin
上我知道64位JVM的位置。确保有bin
文件夹中。
(作为奖励,在Windows 7上,这还允许您实际“固定选项卡”,这就是我必须自己使用的原因)
eclipse.ini
页:wiki.eclipse.org/...
只需将#
符号org.gradle.jvmargs=-Xmx1536m
放在gradle.properties 中的前面
# org.gradle.jvmargs=-Xmx1536m