Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java
java.lang.OutOfMemoryError: PermGen space linux
緣由: PermGen space的全稱是Permanent Generation space, 是指內存的永久保存區域,這塊內存主要是被JVM存放Class和Meta信息的, Class在被Loader時就會被放到PermGen space中, 它和存放類實例(Instance)的Heap區域不一樣,GC(Garbage Collection) 不會在主程序運行期對PermGen space進行清理,因此若是你的應用中有不少CLASS的話, 就極可能出現PermGen space錯誤,這種錯誤常見在web服務器對JSP進行pre compile的時候。 若是你的WEB APP下都用了大量的第三方jar, 其大小超過了jvm默認的大小(4M)那麼就會產生此錯誤信息了。 web
解決方法1: windows
手動設置MaxPermSize大小,若是是linux系統,修改TOMCAT_HOME/bin/catalina.sh,若是是windows系統,修改TOMCAT_HOME/bin/catalina.bat, 服務器
在「echo "Using CATALINA_BASE: $CATALINA_BASE"」上面加入如下行: eclipse
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m jvm
解決方法2ui
修改eclipse.ini文件,修改以下: spa
-vmargs server
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx512m
-XX:PermSize=64M
-XX:MaxPermSize=128M
若是還報錯,能夠考慮以下修改
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512m
-Xmx1024m
-XX:PermSize=256M
-XX:MaxPermSize=512M