GWT,Maven - 无法为对象堆保留足够的空间

时间:2014-02-03 17:45:35

标签: java windows maven gwt memory

我正在尝试使用Maven构建一个GWT项目。当gwt-maven-plugin尝试编译代码时,会抛出错误:

[ERROR] Error: Could not create the Java Virtual Machine.
[INFO] Could not reserve enough space for object heap

我试过mvn -Dgwt.extraJvmArgs=-Xmx1280m clean install,但没有帮助。

一个明显的解决方案通常是设置MAVEN_OPTS系统变量。所以,我添加了MAVEN_OPTS,其值为-XX:MaxPermSize=512m -Xmx1280m。如果我运行echo %MAVEN_OPTS%,我会看到-XX:MaxPermSize=512m -Xmx1280m

现在,如果我尝试运行mvn clean install,我会得到:

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.

这很奇怪,因为任务经理说,我有5.9 Gb的可用内存。为什么会抛出这个错误?为什么不能保留所需的空间?我正在使用32位JVM和Windows 8.

UPDATE :64位JVM帮助了。我没想到,-XX:MaxPermSize=512m -Xmx1280m对于32位JVM来说太过分了。

1 个答案:

答案 0 :(得分:2)

您需要通过

将配置传递给gwt-maven-plugin
mvn -Dgwt.extraJvmArgs=-Xmx1280m clean install

另见http://mojo.codehaus.org/gwt-maven-plugin/compile-mojo.html

你也可以尝试减少内存量:

  

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

这听起来像JVM无法保留所需的空间。试试-Xmx1024m或-Xmx768m。

如果这也不起作用,您可以尝试使用64位JVM来编译代码。