首先,我有一个 8GB 内存的盒子,所以我怀疑总内存是问题。此应用程序在 6gb 或更少的机器上运行良好。
我试图在 Eclipse 的运行配置中的“VM 参数”下使用 -Xmx3G 保留 3GB 的空间。
每次我尝试保留超过 1500mb 时,我都会收到此错误:“VM 初始化期间发生错误;无法为对象堆保留足够的空间”使用 -Xmx3G
这里发生了什么?
首先,我有一个 8GB 内存的盒子,所以我怀疑总内存是问题。此应用程序在 6gb 或更少的机器上运行良好。
我试图在 Eclipse 的运行配置中的“VM 参数”下使用 -Xmx3G 保留 3GB 的空间。
每次我尝试保留超过 1500mb 时,我都会收到此错误:“VM 初始化期间发生错误;无法为对象堆保留足够的空间”使用 -Xmx3G
这里发生了什么?
可能是您在那台机器上使用的是 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 特有的问题。这是一个一般的 Java-on-Windows 问题。这是因为 JVM 在 Windows 上分配内存的方式;它坚持分配连续的内存块,这通常是 Windows 无法提供的,即使有足够的单独块来满足分配请求。有一些实用程序会尝试帮助 Windows 对其内存进行“碎片整理”,从理论上讲,这将有助于解决这种情况;但我并没有真正认真地尝试过它们,所以不能谈论它们的有效性。我有时听到的一件事可能会有所帮助,那就是重新启动 Windows,然后在启动任何其他应用程序之前,启动需要大量内存的 Java 应用程序。如果幸运的话,Windows 还不会分割它的内存空间,而 Java 会得到所要求的连续块。
互联网上的某个地方有更多关于这个问题的技术解释和分析,但我没有任何参考资料。
不过,我确实发现了这一点,这看起来很有帮助:https ://stackoverflow.com/a/497757/639520
首先,32 位的 JRE 不能使用更多 ~1.5Gb 的内存。因此,如果您想要更多,请使用 64 位 JRE。
其次,当一个新的JVM启动时,这会将所有正在运行的JVM的-Xmx属性相加,并检查系统上是否有足够的内存可以在自己的-Xmx处运行,如果不够则发生错误。
我在 Eclipse IDE 中使用 Liferay 和 Tomcat 服务器。单击服务器启动时,我遇到了同样的错误。从eclipse双击服务器。它打开服务器概述页面。将内存参数从 -Xmx1024m -XX:MaxPermSize=256m 更新为 -Xmx512m -XX:MaxPermSize=256m。然后它对我有用。
确保 Eclipse 实际上运行的是您认为它正在运行的同一 JVM。如果您曾经在 Web 浏览器中使用过 java,那么您可能也有一个 32 位版本,如果它最近安装或更新,它可能会优先。
绝对确定,我建议将这两行添加到eclipse.ini
文件的顶部:
-vm
C:/Java/jdk1.6.0_27/bin
...在我的机器C:/Java/jdk1.6.0_27/bin
上我知道 64 位的 JVM 所在的位置。确保那里有bin
文件夹。
(作为奖励,在 Windows 7 上,这还允许您实际“固定选项卡”,这就是为什么我必须为自己的使用这样做)
这是堆大小的问题。编辑您的.bat
(批处理文件)。它可能显示堆大小 1024。将其更改为 512 然后它应该可以工作。
只需将#
符号放在org.gradle.jvmargs=-Xmx1536m
gradle.properties的前面
# org.gradle.jvmargs=-Xmx1536m
在使用 32 位的 Eclipse 并且它使用的 JVM 是 64 位时,我也遇到了同样的问题。当我将 Eclipse 路由到 32 位 JVM 时,它就可以工作了
我知道我来晚了,但我的答案来了:
我刚刚从 Oracle 安装了 Java 在线版本(不是离线的 64 位版本)。
添加 JAVA_HOME ENV 变量后,它就可以工作了!
希望我能帮忙:)
无论如何,您可能正在尝试错误的选择。我在支持错误日志时遇到了类似的错误:
Java HotSpot(TM) Client VM warning: ignoring option PermSize=32M; support was removed in 8.0
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0
我的情况是,该软件还不支持 java 8(脚本使用旧的 JVM 参数),但我默认拥有 java 8。
请在环境变量中设置JAVA_OPTS=-Xms256m -Xmx512m,它应该可以解决问题,它对我有用。
此问题的原因之一是没有可供 Tomcat 启动的内存。尝试从windows中删除不需要的正在运行的软件并重新启动eclipse和tomcat。
解决方法很简单。无需深入探讨这个问题。
如果您在64 位机器上运行,请按照以下步骤操作:
您可以安装两个不同的 Java,但不要忘记设置路径。