在改了JSP程式上傳到伺服器之後
突然發生這個錯誤
從網路找了一些檔案跟自己研究出來的結果
應該是Tomcat記憶體不足
無法完成編譯的動作
(無法將JSP轉換成JAVA檔案)
在網路上有找到兩篇文章
第一篇是
http://www.blogjava.net/etlan/archive/2007/04/29/114575.html
If Java runs out of memory, the following error occurs: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space Java heap size can be increased as follows: java -Xms -Xmx Defaults are: java -Xms32m -Xmx128m 如果你用win /tomcat/bin/catalina.bat 加上下面的命令: set JAVA_OPTS=-Xms32m -Xmx256m 如果你用unix/linux /tomcat/bin/catalina.sh 加上下面的命令: JAVA_OPTS="-Xms32m -Xmx256m"
第二篇是
http://hi.baidu.com/dou_ye/blog/item/8ff0fe3d5490da04baa167ec.html
jvm內存不足 java.lang.OutOfMemoryError: Java heap space Heap size 設置 JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置, JVM在啟動的時候會自動設置Heap size的值, 其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。 可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。 Heap size 的大小是Young Generation 和Tenured Generaion 之和。 提示:在JVM中如果98%的時間是用於GC且可用的Heap size 不足2%的時候將拋出此異常信息。 提示:Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置為相同,而-Xmn為1/4的-Xmx值。 解決方法:手動設置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在「echo "Using CATALINA_BASE: $CATALINA_BASE"」上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
不過因為我這裡的平台雖然是Windows Server 2003安裝Apache Tomcat
Apache Tomcat是利用服務的方式啟動
所以在服務中尋找名稱是Apache Tomcat
會看到執行檔啟動路徑
例如~
"C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\tomcat5.exe" //RS//Tomcat5
本來應該是要利用微軟的工具去修改服務
不過為了趕快解決這個問題
我是利用
執行->Regedit去編輯登錄檔
找出所有有關
"C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\tomcat5.exe" //RS//Tomcat5
這樣的登錄值
修改為
"C:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\tomcat5.exe" //RS//Tomcat5 --JvmMs=64 --JvmMx=256
參數的方式是從Java World上看來的
http://www.javaworld.com.tw/jute/post/view?bid=9&id=200057&sty=1&tpg=9&age=0
要設定的記憶體大小
端看自己伺服器的配備要修改的伺服器記憶體僅有1GB
所以目前就先設定成這樣再觀察看看