Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;java.lang.OutOfMemoryError:PermGen space“;在Maven构建中_Java_Maven_Out Of Memory_Permgen - Fatal编程技术网

&引用;java.lang.OutOfMemoryError:PermGen space“;在Maven构建中

&引用;java.lang.OutOfMemoryError:PermGen space“;在Maven构建中,java,maven,out-of-memory,permgen,Java,Maven,Out Of Memory,Permgen,我在构建Maven项目时遇到了这个错误,我增加了Maven_选项,但同样,我发现了一些类似的帖子,但它们引用了其他内容。我该如何解决这个问题 The system is out of resources. Consult the following stack trace for details. java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Metho

我在构建Maven项目时遇到了这个错误,我增加了Maven_选项,但同样,我发现了一些类似的帖子,但它们引用了其他内容。我该如何解决这个问题

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)
系统资源不足。
有关详细信息,请参阅以下堆栈跟踪。
java.lang.OutOfMemoryError:PermGen空间
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:616)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
在java.net.URLClassLoader.access$000(URLClassLoader.java:58)
在java.net.URLClassLoader$1.run(URLClassLoader.java:197)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:190)
位于org.codehaus.plexus.compiler.javac.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:56)
位于com.sun.tools.javac.comp.Annotate.(Annotate.java:52)
位于com.sun.tools.javac.comp.Annotate.instance(Annotate.java:36)
位于com.sun.tools.javac.jvm.ClassReader.(ClassReader.java:215)
位于com.sun.tools.javac.jvm.ClassReader.instance(ClassReader.java:168)
位于com.sun.tools.javac.main.JavaCompiler.(JavaCompiler.java:293)
位于com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:72)
位于com.sun.tools.javac.main.main.compile(main.java:340)
位于com.sun.tools.javac.main.main.compile(main.java:279)
位于com.sun.tools.javac.main.main.compile(main.java:270)
位于com.sun.tools.javac.Main.compile(Main.java:87)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:420)
位于org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:141)
位于org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:493)
位于org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
位于org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.ExecuteGals(DefaultLifecycleExecutor.java:694)
位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
位于org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)

我并不担心如何修复,也不担心如何在maven生态系统中修复。当然,增加烫发空间的大小。使用
-XX:MaxPermSize=128m
选项。将值设置为适当的值。

当您说您增加了
MAVEN_OPTS
时,您增加了哪些值?是否增加了
MaxPermSize
,如示例所示:

export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"
(或在Windows上:)


您还可以指定这些JVM选项。

如果您想将POM的这一部分用于可重复构建,您可以使用一些插件的fork变体(尤其是和):


org.apache.maven.plugins
maven编译器插件
3.2
真的
128米
1024米
-XX:MaxPermSize=256m
org.apache.maven.plugins
maven surefire插件
2.18
1.
-Xmx1024m-XX:MaxPermSize=256m

当您尝试使用git mvn clean install for构建war时,我找到了git bash命令的解决方案 Maven构建错误中的“java.lang.OutOfMemoryError:PermGen space”

use below command first 

$ export MAVEN_OPTS="-Xmx512m -Xss32m"

then use your mvn command to clean install /build war file

$ mvn clean install

NOTE: you don't need -XX:MaxPermSize argument in MAVEN_OPTS when your are using jdk1.8
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=XXXm; support was removed in 8.0

当我遇到这个异常时,我使用运行配置解决了这个问题。。。面板如下图所示。特别是在JRE选项卡上,VM参数是关键的
“-Xmx1024m-Xms512m-XX:MaxPermSize=1024m-XX:PermSize=512m”


当永久生成堆已满时,我们会遇到这个错误,我们中的一些人会使用命令提示符在windows中构建maven项目。由于我们需要增加堆大小,我们可以设置环境变量@ControlPanel/System和Security/System,然后单击更改设置,选择高级并设置环境变量,如下所示

  • 变量名称:MAVEN_OPTS
  • 变量值:-XX:MaxPermSize=128m

    • 这是一个非常恼人的错误,所以我所做的是: 在Windows下:

      Edit system environment variables - > Edit Variables -> New
      
      然后填充

      MAVEN_OPTS
      -Xms512m -Xmx2048m -XX:MaxPermSize=512m
      


      然后重新启动控制台并再次运行maven构建。不再有Maven space/perm大小问题。

      如果搜索“PermGen space”,会有很多类似的问题嗯,这是在部署到tomcat时,我还没有到目前为止,所以它与您看到的不一样,我甚至不使用tomcat,我使用jboss错误是在maven期间build@PaulTomblin我同意,但在构建项目时没有一个提到错误,但解决方案是一样的:增加JavaVM上的PermGen空间(在本例中:运行maven的那个)@Gandalf-这是我为Maven找到的建议:
      -Xms512m-Xmx1024m-XX:PermSize=256m-XX:MaxPermSize=512m
      我可以在pom.xml中设置这个属性吗?我需要使我的构建能够移植到不同的环境中。他知道这一点。不是他要求的为mac/linux用户调整注释,只是在~/.profile(或类似文件名)中添加一条导出语句。例如:导出MAVEN_OPTS=“-Xmx512m-XX:MaxPermSize=256m”…并重新启动shell。为我工作。如果使用命令构建项目,请使用-DXmx512m-DXX:MaxPermSize=128mon Unix
      export MAVEN_OPTS=“-Xmx512m-XX:MaxPermSize=128m”
      Bett
      MAVEN_OPTS
      -Xms512m -Xmx2048m -XX:MaxPermSize=512m