我出现内存错误,如何解决?Permgen空间区域是什么意思?造成这种情况的原因是什么?
它的解决方案是什么?
java.lang.OutOfMemoryError: PermGen space
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClassCond(Unknown Source)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1814)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
org.jboss.web.tomcat.service.WebAppClassLoader.findClass(WebAppClassLoader.java:75)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
答案 0 :(得分:1)
PermGen 是一个存储区域,存储与类相关的信息。
如果您的类加载器在必要时无法卸载类定义,则可能出现与PermGen相关的OutOfMemoryError。
您可以解决此错误,增加专用于permgen的内存量-XX:MaxPermSize=512m
JVM使用MaxPermSize参数手动定义PermGen区域的内存大小。您可以将该参数传递给任何Java应用程序(例如,作为启动tomcat的参数)。