使用Java程序從數據庫中查詢大量的數據時出現異常:
java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的時間是用於GC且可用的 Heap size 不足2%的時候將拋出此異常信息。
JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啓動的時候會自動設置Heap size的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。
解決辦法:
tomcat_home/bin下catalina.bat(win)或catalina.sh(linux)執行代碼前加上:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
=============================================================
eclipse java.lang.OutOfMemoryError: Java heap space 解決方案
===========================================================
eclipse java.lang.OutOfMemoryError: Java heap space 解決方案
eclipse 有啓動參數裏設置jvm大小,因爲eclipse運行時自己也需要jvm,所以eclipse.ini裏設置的jvm大小不是具體某個程序運行時所用jvm的大小,這和具體程序運行的jvm大小無關。
那麼怎麼才能設置某個程序的jvm大小呢(當然控制檯運行的話不會存在這個問題,如:java -Xms256m -Xmx1024m classname,這樣就可以把當前程序的jvm大小給設定)?
因爲eclipse裏默認的一個程序的jvm配置爲:-Xms8m -Xmx128m,所以我們的處理耗內存比較大時需要手動調整一下,以便不會內存溢出。具體的設置方法爲:
選中被運行的類,點擊菜單‘Run as ->Open Run Dialog...’,選擇(x)=Argument標籤頁下的vm arguments框裏輸入 -Xmx512m, 保存運行就ok了
=======================================================
Eclipse中java.lang.OutOfMemoryError: Java heap space
錯誤2007-06-12 11:53java.lang.OutOfMemoryError: Java heap space錯誤
在tomcat in的catalina.bat里加
set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true
256和512分別是MIN和MAX內存
在eclipse中的
windows->preferences..->tomcat->jvm..->jvm那一個文本框裏,添加-Xms256m -Xmx512m
這樣就可以了!
==================================
Eclipse中VM設定方法 - [] - Tag:java.lang.OutOfMemoryError: Java heap space
點擊右鍵,選擇run...,彈出窗口如下圖,在vm輸入框中填寫合適的內存值即可。
==================================
eclipse中,黃線是警示。
private Log log = LogFactory.getLog(AddCateAction.class);//小黃線在log上。
這裏的黃線是指你定義了私有變量log,但沒有用到這個變量。
v.add(o); //這時eclipse下面出現了一個小黃線,表示仍然被引用?
這裏是指add方法是不推薦的方法。
OutOfMemoryError和懷疑的引用沒有關係,可能是循環創建對象導致java內存不足。
用參數指定java虛擬機的內存.
java -Xms256m -Xmx1024m -XX:MaxPermSize=256M
========================================================
2、如果在啓動過程中出現內存溢出問題,拋出類似如下異常信息:
java.lang.OutOfMemoryError: Java heap space
可以嘗試辦法:
A.修改Tomcat/bin/catalina.bat,添加如下內容
set JAVA_OPTS=-Xms256m -Xmx512m -Djava.awt.headless=true [-XX:MaxPermSize=128M]
B.eclipse->windows->preferences..->tomcat->jvm..->jvm文本框裏,添加-Xms256m -Xmx512m
C.eclipse->preference->java->instal jres->edit,增加參數:-Xms256m -Xmx512m
參考原因:JVM中如果98%的時間是用於GC且可用的, Heap size不足2%的時候將拋出此異常信息。
JVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啓動的時候會自動設置Heap size的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。
可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。Heap Size 最大不要超過可用物理內存的80%,一般的要將-Xms和-Xmx選項設置爲相同,而-Xmn爲1/4的-Xmx值。
Heap size的 -Xms -Xmn 設置不要超出物理內存的大小。否則會提示“Error occurred during initialization of VM Could not reserve enough space for object heap”。