我正在使用 "mvn install" 编译一个开源项目,但是遇到了 java.lang.OutOfMemoryError: Java heap space
。我尝试执行 java -Xmx256m
,但输出了 java 概要,指示它是无效命令。
我正在使用 jdk1.5.0_08
,你有任何想法为什么会发生这种情况吗?
谢谢,
我正在使用 "mvn install" 编译一个开源项目,但是遇到了 java.lang.OutOfMemoryError: Java heap space
。我尝试执行 java -Xmx256m
,但输出了 java 概要,指示它是无效命令。
我正在使用 jdk1.5.0_08
,你有任何想法为什么会发生这种情况吗?
谢谢,
设置环境变量:
MAVEN_OPTS="-Xmx512m"
这取决于哪个JVM实例需要更多的内存。
例如,如果测试被分叉(默认情况下),并由于OutOfMemoryError而失败,请尝试配置启动它们的插件:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
</plugin>
不仅需要增加堆内存,还需要增加 perm 大小来解决 Maven 中的异常。
在环境变量中使用以下变量:
变量名:MAVEN_OPTS
变量值:-Xmx512m -XX:MaxPermSize=256m
Xmx
和MaxPermSize
的当前值?毕竟,如果不知道已经设置了什么值,就无法增加这些值。 - ArtOfWarfare有时候,在Maven中使用其他程序,比如集成测试或Surefire时,MAVEN_OPTS可能不够用。除了MAVEN_OPTS之外,还可以尝试使用JAVA_TOOL_OPTIONS。在运行一些集成测试时,这对我在Maven中起到了作用:
export JAVA_TOOL_OPTIONS="-Xmx2048m -XX:MaxPermSize=1024m -Xms2048m"
或者在命令提示符下运行时使用set MAVEN_OPTS="-XX:MaxPermSize=256m"
。
我在Ubuntu上经常与我的shell一起使用它:
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=500m"
尝试更改或更新您的Maven安装。我曾经遇到过这个问题,但通过升级Maven(从3.0.5到3.3.3)解决了它。
我遇到了同样的问题。根据这个链接,更改jvm实现可能会有所帮助 - 这可以通过设置JAVA_HOME系统变量来完成。
例如,尝试在提到的链接中使用ibm jvm或oracle jrockit:
SET JAVA_HOME=C:\bea10\jrockit160_22
mvn install