`

java.lang.OutOfMemoryError: PermGen space问题解决

    博客分类:
  • JAVA
阅读更多

                       常见的问题PermGen space总结

 

在启动tomcat或者启动tomcat后,访问tomcat里的web项目,会报这样的错误

Exception in thread "http-bio-8080-exec-1" java.lang.OutOfMemoryError: PermGen s
pace
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
        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 java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at org.apache.catalina.connector.Response.setConnector(Response.java:152
)

 

查了网上的资料,自己在windows 64位环境下,测试了一下

有两种解决办法:

修改catalina.bat

1、在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128m -XX:MaxPermSize=512m

 

2、在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:

set JAVA_OPTS=-server -XX:PermSize=128M -XX:MaxPermSize=512m

 3、或者 (在eclipse调试的时候,发现这个方法也有用)

在echo "Using CATALINA_BASE:   $CATALINA_BASE"加上

JAVA_OPTS="-server -XX:PermSize=256m -XX:MaxPermSize=512m"

结果是可以的

 

在linux环境下,没有出现过这样的问题,现在先把从网上找的资料贴进来,下次碰到这样的问题时,再实验

方法和windows里的一样,只是需要改catalina.sh文件

 

 

1、在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128m -XX:MaxPermSize=512m

 

 

 

2、在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:

 

set JAVA_OPTS=-server -XX:PermSize=128M -XX:MaxPermSize=512m

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics