[Tomcat] java.lang.OutOfMemoryError: PermGen space
在 Tomcat 6.0.23 安裝後的預設環境下,操作某個程式中遇到了這個錯誤訊息javax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space
基本上就是需要做一些環境調教,處理的方法不外乎就是設定 JAVA_OPTS 環境變數或是直接修改啟動的命令參數
若是不想影響其他 Java 相關程式,而只要針對 Tomcat 調整的處理方式
可以在 TOMCAT_HOME/bin 目錄內加入 setenv.sh 檔案來作環境設定
因為 Tomcat 的啟動程序 startup.sh 會執行 catalina.sh
而 catalina.sh 會檢查 setenv.sh 是否存在,若是存在就會執行 setenv.sh
所以可以透過增加或編輯 setenv.sh 的內容來調整 Tomcat 專有的執行環境設定
而 setenv.sh 的內容為[code]
JVM_MINIMUM_MEMORY="256m"
JVM_MAXIMUM_MEMORY="768m"
JVM_MAX_PERM_SIZE="256m"
JAVA_OPTS="-Xms${JVM_MINIMUM_MEMORY} -Xmx${JVM_MAXIMUM_MEMORY} ${JAVA_OPTS}"
JAVA_OPTS="-XX:MaxPermSize=${JVM_MAX_PERM_SIZE} ${JAVA_OPTS}"
export JAVA_OPTS
[/code]以上為 Linux 環境的處理。
頁:
[1]