设置java堆大小时忽略MAVEN_OPTS

时间:2017-01-04 18:25:43

标签: java maven

这怎么可能?我没有正确理解linux,因为我没有 知道这是怎么发生的。我相信这里还有其他的事情,因为我试图将最大堆大小设置为1G并且它失败了

MAVEN_OPTS指定1024m的堆,但maven命令失败,因为堆是4096m。机器是32位,安装了6G

内存

$free -h
             total       used       free     shared    buffers     cached
Mem:          5.8G       3.8G       2.0G       186M       351M       2.1G
-/+ buffers/cache:       1.3G       4.4G
Swap:         5.8G         0B       5.8G

的Maven

echo $MAVEN_OPTS
-Xms512m -Xmx1024m -XX:MaxPermSize=1024m

$ mvn -version
Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

爪哇

java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) Server VM (build 25.111-b14, mixed mode)

Linux的

uname -a 102-Ubuntu SMP Tue Aug 11 14:28:35 UTC 2015 i686 i686 i686 GNU/Linux

2 个答案:

答案 0 :(得分:0)

再次使用以下设置并尝试:

Linux的:

  

导出MAVEN_OPTS =" -Xmx1024m -XX:MaxPermSize = 1024m"

  

设置MAVEN_OPTS =" -Xmx1024m -XX:MaxPermSize = 1024m"

答案 1 :(得分:0)

我刚遇到同样的错误,解决方案已提供给我的this blog post。在帖子中,陈述;

  

检查mvn.bat:MAVEN_OPTS直接作为JVM参数传递:

     

SET MAVEN_JAVA_EXE =“%JAVA_HOME%\ bin \ java.exe”%MAVEN_JAVA_EXE%   %MAVEN_OPTS%-classpath%CLASSWORLDS_JAR%   “-Dclassworlds.conf =%M2_HOME%\ bin \ m2.conf”“ - Dr.home =%M2_HOME%”   %CLASSWORLDS_LAUNCHER %% MAVEN_CMD_LINE_ARGS%

     

如果我们运行设置MAVEN_OPTS =“ - Xmx1024M -XX:MaxPermSize = 256M”,之前的   命令将替换为%MAVEN_JAVA_EXE%“ - Xmx1024M   -XX:MaxPermSize = 256M“......

     

如果我们运行java“-Xmx1024M -XX:MaxermSize = 256M”-version:我们会看到   同样的错误信息。

     

解决方案很简单:我们可以运行:设置“MAVEN_OPTS = -Xmx1024M   -XX:MaxPermSize = 256M“或完全删除双引号:设置MAVEN_OPTS = -Xmx1024M -XX:MaxPermSize = 256M

     

MAVEN_OPTS的值没有周围的双引号。

这肯定解决了我的问题。