VM初始化时出错,无法为对象堆保留足够的空间 - Spring Tool Suite?

5
当我构建Gradle项目时,出现以下错误,但SpringToolSuite运行正常。
Error occured during the initialization of VM
Could not reserve enough space for object heap
Error: Could not create Java Virtual Machine
Error: A fatal exception has occurred. Program will exit.

我有4GB的内存,我的操作系统是64位的,最近我将Java从1.6升级到了1.7。
这是我的sts.ini文件。
 -startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813
-product
org.springsource.sts.ide
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
1024M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx768m
-XX:MaxPermSize=1024m

我尝试了各种不同的-Xms-Xmx变量,但仍然出现相同的错误。


“错误:无法创建Java虚拟机”让我想到-Xmx大于特定JVM实例允许的最大值。您确定Gradle没有在与您认为不同的JRE上运行,可能是在您计算机上某个32位jre上运行吗? - Keith
sts.ini 仅用于启动 STS。gradle vmargs 来自不同的位置。 - Andrew Eisenberg
4个回答

3
如果您的STS运行正常,那么问题可能在于JVM gradle用于构建项目的运行情况。如果您正在使用Gradle Wrapper,则可以直接配置其文件。如果想让Eclipse覆盖它的参数,则可以尝试编辑Gradle首选项,在Window > Preferences > Gradle > Arguments下为-Xmx-Xms设置自定义值。请参考以下截图:

enter image description here


1

您需要前往安装Gradle的主文件夹,如果您将Gradle安装在主目录下,则为:

C:\Users\YourUserName\.gradle\deamon\2.1

并在那里创建文件

gradle.properties

Put into file this:

org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

org.gradle.java.home=C:/Development/Tools/Java/Java7/bin [CHANGE IT TO YOUR PATH TO JAVA_HOME]

0
在Android Studio中,我添加了这行代码:
org.gradle.jvmargs=-Xmx512m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

0

我曾经遇到过同样的问题。以下方法解决了我的问题:

Eclipse -> 运行 -> 运行配置 -> 参数

然后添加

-XX:MaxHeapSize=1024m

大小取决于您的应用程序需求。希望这能帮助到您。 如果您使用的是STS,我认为您可以在其中找到与Eclipse相同的选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接