gpt4 book ai didi

java - 如何使用 maven jvmArg 解决 "GC overhead limit exceeded"?

转载 作者:IT老高 更新时间:2023-10-28 21:22:04 66 4
gpt4 key购买 nike

运行类(class)时出现以下异常:

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded

我尝试从类包的 maven pom.xml 中增加 jvmArg 堆大小:

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<parent>
(...)
</parent>


<artifactId>(...)</artifactId>
<name>(...)</name>

<properties>
<javaOpts.Xmx>4g</javaOpts.Xmx> <!-- default that can be adjusted on the command line with -DjavaOpts.Xmx=... -->
<(...).basedir>${project.basedir}/..</(...).basedir>
</properties>

<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<configuration>
<launchers>
<launcher>
<id>MyClassName</id>
<mainClass>(...)</mainClass>
<jvmArgs>
<jvmArg>-Xmx${javaOpts.Xmx}</jvmArg>
(...)

我已经尝试了最后引用的行,其中包含许多值:

  • <jvmArg>-Xmx512m{javaOpts.Xmx}</jvmArg>
  • <jvmArg>-Xmx4096M{javaOpts.Xmx}</jvmArg>
  • ...
  • <jvmArg>-Xmx10000000000M{javaOpts.Xmx}</jvmArg>

但是对于所有这些我都有同样的错误。

有人可以帮助我吗?观察:我正在运行 IntelliJ IDEA

最佳答案

Java 7

这不是 Maven 问题,您需要为 VM 提供更多内存。您通过环境变量执行此操作,Maven Launcher 将在加载时自动获取这些设置,并使用它们来配置底层 Java VM。

简单的方法是:

export MAVEN_OPTS="-Xmx1024M -Xss128M -XX:MaxPermSize=1024M -XX:+CMSClassUnloadingEnabled"

window :

设置 MAVEN_OPTS=-Xmx1024M -Xss128M -XX:MaxPermSize=1024M -XX:+CMSClassUnloadingEnabled

(无双引号)

Java 8

Java 8 已将永久代替换为元空间,新设置如下所示:

export MAVEN_OPTS="-Xmx1024M -Xss128M -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=1024M -XX:+CMSClassUnloadingEnabled"

关于java - 如何使用 maven jvmArg 解决 "GC overhead limit exceeded"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18770487/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com