java - 在 intellij 上运行测试抛出 OutOfMemoryError

标签 java maven intellij-idea out-of-memory fedora

java.lang.OutOfMemoryError: PermGen space

    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.codehaus.groovy.antlr.AntlrParserPlugin.transformCSTIntoAST(AntlrParserPlugin.java:126)
    at org.codehaus.groovy.antlr.AntlrParserPlugin.parseCST(AntlrParserPlugin.java:110)
    at org.codehaus.groovy.control.SourceUnit.parse(SourceUnit.java:234)
    at org.codehaus.groovy.control.CompilationUnit$1.call(CompilationUnit.java:168)
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:943)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:605)
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
    at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:584)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:594)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrap.invoke(PogoMetaMethodSite.java:190)


java.lang.OutOfMemoryError: PermGen space

我使用的是最新的 Fedora 发行版,运行 Intellij Ultimate。我还将 Maven Runnger VM 选项配置为 -Xmx4g -XX:MaxPermSize=4g

我如何调试为什么虚拟机选项没有应用于测试或者为什么测试甚至不使用默认选项运行。同一个项目在另一台运行 Ubuntu Trusty 的机器上运行得很好。

最佳答案

How could I debug why the VM Options are not getting applied to the test or why the tests even dont run with default options. Same project works perfectly fine on another machine running Ubuntu Trusty.

您可以应用排除法来找出哪个参数引起了问题。我怀疑在这种情况下,要么是 MaxPermSize 标志等于 Xmx,要么是 Xmx 值设置为 4gb >(如果相关系统是 32 位架构)。

尝试修改标志(当然要进行备份!)来测试这些假设并从那里迭代。

关于java - 在 intellij 上运行测试抛出 OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45333964/

相关文章:

java - 在调用循环中的方法后如何继续循环?

java - 类路径在哪里?

java - 为什么我们需要检查两次哈希码?

tomcat - 无法从 Intellij Idea 运行 Tomcat

java - 组件和对象之间的区别

java - GWT + Maven,无需任何 IDE

java - 为什么这个 Spring Boot 应用程序找不到主页?

maven - 如何使用 Gulp、Maven 和 Jenkins 组织完整的构建管道,一直到集成测试?

scala - 多个scala库导致intellij错误?

android - Intellij 中不受信任的服务器证书