Eclipse 中設置JVM 內存
今天在eclipse 中測試把文檔轉換爲圖片的時候,報出了下面的錯誤:
java.lang.OutOfMemoryError: Java heap space
從上邊的異常信息能夠看到,JVM 須要使用的內存已經超過了咱們分配給虛擬機能夠使用的最大內存。因此問題就轉化爲如何設置eclipse 中jvm 的最大內存。
1、嘗試修改Eclipse.ini 文件 (此方法不行)
找到eclipse 目錄下的eclipse.ini 文件,修改下面的內容:
-Xms40m
-Xmx512m
修改後重啓eclipse ,發現根本不起做用。通過後來查閱一些資料,原來這裏設置的最小內存和最大內存是否是給JVM 使用的,這個內存值包含了eclipse 自身使用的內存。
2、修改jdk 使用內存(此方法可行)
找到eclispe 中window->preferences->Java->Installed JRE ,點擊右側的Edit 按鈕,在編輯界面中的 「Default VM Arguments 」選項中,填入以下值便可。
-Xms64m -Xmx128m
3、修改Run Configurations (此方法可行)
在代碼上右鍵,依次點擊「Run As 」-> 「Run Configurations 」,在Arguments 參數中的「VM arguments: 」中填入以下值便可。
-Xms64m -Xmx128m
4、查詢當前JVM 內存代碼
下面是查詢當前JVM 內存大小的代碼,能夠測試以上設置後JVM 的內存是否會變化。增長JVM 內存的配置項後,無需從新啓動eclipse 。具體的代碼以下:
java
public class TestMemory { jvm
public static void main(String[] args) { 測試
System. out .println( " 內存信息 :" + toMemoryInfo ()); spa
} .net
/** 圖片
* 獲取當前 jvm 的內存信息 ip
* @return 內存
*/ 文檔
public static String toMemoryInfo() {
Runtime currRuntime = Runtime.getRuntime ();
int nFreeMemory = ( int ) (currRuntime.freeMemory() / 1024 / 1024);
int nTotalMemory = ( int ) (currRuntime.totalMemory() / 1024 / 1024);
return nFreeMemory + "M/" + nTotalMemory + "M(free/total)" ;
}
}