eclipse - java.lang.OutOfMemoryError : PermGen space in tomcat with eclipse 错误

标签 eclipse tomcat

当我使用 eclipse 在 tomcat 上运行我的应用程序时,我经常遇到这个异常:

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 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    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 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1850)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:265)
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
    at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
    at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
    at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
    at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
    at com.spacerdv.dao.impl.UserDaoImpl.getUserDetails(UserDaoImpl.java:170)
    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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

最佳答案

尝试提高perm空间,在vm启动时添加如下参数

-XX:PermSize=256m -XX:MaxPermSize=256m

同时将 -XX:MaxPermSize=256m 添加到 Eclipse 中的 Tomcat:Server > Open Launch Configuration > Arguments

更新(2014 年): 看看here at this question and answer关于the new Java 8 Metaspace.

看看这里:

How to deal with “java.lang.OutOfMemoryError: PermGen space” error

关于eclipse - java.lang.OutOfMemoryError : PermGen space in tomcat with eclipse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179141/

相关文章:

java - 如何将 JAR 文件添加到 Eclipse 中的 web-inf/lib 文件夹?

spring - 添加spring-context-3.0.0.RELEASE.jar后Tomcat 7不启动

java - 登录时,我的 Apache Tomcat webapp 转到 webapp/favicon.ico,我怎样才能阻止我的 webapp 重定向到这个?

java - 需要有关 Maven 示例的帮助

java - 为什么自动检测选项对我不可用?

使用 SSL 时 Tomcat 超时

tomcat - NetBeans Maven {tomcat_base}/bin 文件夹作为假类路径

java - Spring pageContext.request.contextPath,Apache 后面的 Tomcat 作为反向代理

java - 在 Eclipse Helios 中使用 C++ 的 Android Cocos2DX

java - 如何将此更改日志库添加到 Eclipse 中当前的 Android 项目中?