2009-12-17 67 views
31

我正在用“mvn install”编译一个开源项目,但以java.lang.OutOfMemoryError: Java heap space结束。我试图执行java -Xmx256m,但输出是java摘要,表明它是一个无效的命令。Maven抛出“java.lang.OutOfMemoryError”

我正在使用jdk1.5.0_08,有任何想法为什么会发生这种情况?

感谢,

+2

它是开放的问题;)的答案可能是MAVEN_OPTS = “ - Xmx513m” 等;) – cetnar 2009-12-17 11:37:59

回答

50

设置环境变量:

MAVEN_OPTS="-Xmx512m" 
+12

有时也不错延长烫发内存大小 - MAVEN_OPTS = “ - Xmx512m -XX:MaxPermSize参数=256米” 独 – cetnar 2009-12-18 10:55:58

+2

设置MAVEN_OPTS如果构建在运行单元测试时失败,则不够用。在这种情况下,您可能必须明确配置maven-surefire-plugin的“argLine”。 – 2014-01-13 02:29:41

+1

我在mvn install上遇到这个错误,使用“mvn install -DMAVEN_OPTS = -Xmx1024m”解决了我的问题! – Surekha 2014-11-07 19:47:59

18

这要看JVM实例需要更多的内存。 作为例子,如果测试分叉(默认),并由于失败的OutOfMemoryError然后尝试配置插件,它推出他们:

 <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <argLine>-Xmx1024m</argLine> 
      </configuration> 
     </plugin> 
-5

我经历了同样的问题。根据this link它可能有助于更改jvm实现 - 这可以通过设置JAVA_HOME系统变量来完成。

尝试例如在链路提到IBM JVM或Oracle JRockit的:

SET JAVA_HOME=C:\bea10\jrockit160_22 
mvn install 
9

不仅堆内存。你必须增加perm的大小来解决maven的异常 在环境变量中使用这些变量。

变量名:MAVEN_OPTS
变量值:-Xmx512m -XX:MaxPermSize参数=256米

+0

如何获得'Xmx'和'MaxPermSize'的当前值?毕竟,如果不知道他们已经设置了什么,我就无法增加价值。 – ArtOfWarfare 2013-10-11 15:01:38

+0

我不确定MaxPermSize,但Xmx通常是物理内存的四分之一。同样,这可能会因JVM的实现和/或JVM的“服务器”,“客户端”模式而异。 – 2014-01-13 02:33:54

+0

-bash:export:'-XX:MaxPermSize = 256m':不是有效的标识符 – user2568374 2017-01-19 21:12:53

0

可选地使用从set MAVEN_OPTS="-XX:MaxPermSize=256m"命令提示运行时。

-1

尝试更改或更新您的Maven安装。我有这个问题,但我通过升级Maven(3.0.5到3.3.3)来解决它。

0

我总是和我的壳在Ubuntu使用:在Unix的

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=500m" 
相关问题