这个问题在这里已有答案:
我在构建Maven项目时遇到了这个错误,我增加了MAVEN_OPTS,但是我发现了一些类似的帖子,但是他们引用了其他的东西 . 我该如何解决?
The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at org.codehaus.plexus.compiler.javac.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:56)
at com.sun.tools.javac.comp.Annotate.<init>(Annotate.java:52)
at com.sun.tools.javac.comp.Annotate.instance(Annotate.java:36)
at com.sun.tools.javac.jvm.ClassReader.<init>(ClassReader.java:215)
at com.sun.tools.javac.jvm.ClassReader.instance(ClassReader.java:168)
at com.sun.tools.javac.main.JavaCompiler.<init>(JavaCompiler.java:293)
at com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:72)
at com.sun.tools.javac.main.Main.compile(Main.java:340)
at com.sun.tools.javac.main.Main.compile(Main.java:279)
at com.sun.tools.javac.main.Main.compile(Main.java:270)
at com.sun.tools.javac.Main.compile(Main.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:420)
at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:141)
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:493)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
7 回答
这个非常烦人的错误,所以我做了:在Windows下:
然后填写
然后重新启动控制台并再次运行maven构建 . 不再有Maven空间/烫发尺寸问题 .
当你尝试使用git mvn clean install为Maven构建错误来自“java.lang.OutOfMemoryError:PermGen space”构建war时,我找到了git bash命令的解决方案
当我遇到这个异常时,我通过使用Run Configurations ...面板解决了这个问题,如下图所示 . 特别是在JRE选项卡中,VM Arguments是关键
( "-Xmx1024m -Xms512m -XX:MaxPermSize=1024m -XX:PermSize=512m" ) .
当你说你增加了
MAVEN_OPTS
时,你增加了什么 Value ?你增加了MaxPermSize
,例如:(或在Windows上:)
如果你想让POM的这一部分用于可重复的构建,你可以使用一些插件的fork-variant(特别是compiler:compile和surefire:test):
当然,增加烫发空间的大小 . 使用
-XX:MaxPermSize=128m
选项 . 将值设置为适当的值 .当永久生成堆已满并且我们中的一些人使用命令提示符在Windows中构建我们的maven项目时,我们会遇到此错误 . 因为我们需要增加堆大小,我们可以设置我们的环境变量@ ControlPanel / System和Security / System,然后单击 Change setting 并选择Advanced并将Environment变量设置如下
变量名:MAVEN_OPTS
变量值:-XX:MaxPermSize = 128m