Bal*_*pal 3 java maven-2 out-of-memory maven
我正在尝试使用maven进行项目工作,但我遇到了与内存相关的问题.
当我运行maven时,我得到堆空间错误,我使用以下行修复
set MAVEN_OPTS="-Xmx1586m"
Run Code Online (Sandbox Code Playgroud)
在此之后,当我再次运行maven时,我没有得到堆空间错误,而是我得到了PermGen空间错误.为了解决这个问题,我使用了以下语法
set MAVEN_OPTS="-Xmx1586m -XX:MaxPermSize=512m"
Run Code Online (Sandbox Code Playgroud)
但是一旦我开始使用MaxPermSize选项,我会收到以下错误
无效的最大堆大小:-Xmx1586m -XX:MaxPermSize = 512m
无法创建Java虚拟机.
我尝试为Xmx和MaxPermSize设置不同的值组合以使控件的大小,但都是无效的.
只有当我在MAVEN_OPTS中添加MaxPermSize选项时才会出现此错误.一旦我删除该选项,我没有得到上面提到的错误,但我确实得到了PermGen错误.
有什么建议我做错了吗?
ser*_*g10 12
问题是java还没有理解你的命令行选项.消息:
Invalid maximum heap size: -Xmx1586m -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)
告诉你java已经使用整个字符串"-Xmx1586m -XX:MaxPermSize = 512m"来尝试设置最大堆大小.
我的猜测是你需要在不使用引号的情况下设置环境变量.尝试:
set MAVEN_OPTS=-XMx1586m -XX:MaxPermSize=512m
Run Code Online (Sandbox Code Playgroud)
你可以尝试设置初始堆大小和初始permgen大小相对较小,但通过-Xms128m -Xmx1024m -XX设置正确的最大堆和pergent:PermSize = 128m -XX:MaxPermSize = 256m
也不要将permgen设置为512 - 这对于典型的风格来说太过分了.
此外,您可能希望将fork选项与maven一起使用,并在不同的JVM中启动插件执行.
例如
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
此外,虽然分配内存也确保您有足够的可用内存.
| 归档时间: |
|
| 查看次数: |
9203 次 |
| 最近记录: |