当前位置: 首页 > 知识库问答 >
问题:

如何使用maven jvmarg解决“超出GC开销限制”?

鲍建业
2023-03-14

当运行一个类时,我会出现以下异常:

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>
                        (...) 

我已经用许多值尝试了最后引用的一行:

  • -xmx512m{javaopts.xmx}
  • -xmx4096m{javaopts.xmx}
  • ...
  • <jvmarg> -xmx10000000000m{javaopts.xmx}

有人能帮我吗?观察:我正在从IntelliJ IDEA逃跑。

共有1个答案

屈畅
2023-03-14

Java 7

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

做到这一点的简单方法是:

(无双引号)

Java 8

Java8已经用metaspace取代了永久生成,新的设置如下所示:

导出maven_opts=“-xmx1024m-xss128m-xx:metaspacesize=512m-xx:maxmetaspacesize=1024m-xx:+CMSClassUnloadingEnabled”

 类似资料:
  • 线程“main”java.lang.OutOfMemoryError中出现异常:超过GC开销限制 我试图从类包的maven pom.xml内部增加jvmArg堆大小: http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0 null

  • 使用当我尝试构建我的项目时,这种错误越来越多: 错误:任务“:app:CompiledEbugJavaWithJavac”执行失败。OutofMemoryError:超出GC开销限制 有什么办法解决这个问题吗?

  • 我正在尝试预处理一个大的txt文件(10G),并将其存储在二进制文件中以备将来使用。当代码运行时,速度会减慢,并以 异常线程"main"java.lang.OutOfMemoryError: GC开销限制超过 输入文件具有以下结构 这是我正在使用的代码: 基本上,它通过in文件并将数据存储到对象HMbicnt(这是一个哈希映射)。一旦在第二列中遇到新值,它应该将对象写入输出文件,释放内存并继续。

  • 问题内容: 我正在尝试建立一个包含2台服务器的Gridgain集群。 使用 GridDataLoader 将.csv文件中的数据(100万至5000万个数据)加载到Gridgain 。 从加载的数据中找到最小值,最大值,平均值等, 当在Eclipse中作为独立应用程序运行时,我得到正确的输出。 但是,在建立集群(eclipse环境中的2个服务器中的2个节点+我的Eclipse环境中的1个节点)的同

  • 问题内容: 我在一个程序中创建了这个错误,该程序创建了几个(数十万)HashMap对象,每个对象都有几个(15-20)文本条目。这些字符串必须全部收集(不分解成较小的数量),然后再提交给数据库。 根据Sun的说法,该错误发生“如果在垃圾回收上花费了太多时间:如果在垃圾回收上花费了总时间的98%以上,而回收不到2%的堆,则将引发OutOfMemoryError。 ”。 显然,可以使用命令行将参数传递

  • 问题内容: 我收到 java.lang.OutOfMemoryError: 在Android 1.4上运行gradle时, 超出了GC开销限制 …这是我的依赖: 如何解决? 问题答案: 将此添加到您的android闭包(构建gradle): 这样可以解决您的问题。不过,如果您遇到问题,请参见以下链接 GC开销限制超出错误