由于有的项目过大会出现这样的错误:
java.lang.OutOfMemoryError: Java heap space
网上找了很多资料,总结了几点
一、 尝试修改Eclipse.ini 文件 (这个方法几乎没有用)
找到eclipse 目录下的eclipse.ini 文件,修改下面的内容:
-Xms512m -Xmx1024m (看你电脑配置,自己分配大小)
修改后重启eclipse ,发现根本不起作用。经过后来查阅一些资料,原来这里设置的最小内存和最大内存是不是给JVM 使用的,这个内存值包含了eclipse 自身使用的内存。
二、 修改jdk 使用内存
找到eclispe 中window->preferences->Java->Installed JRE ,点击右侧的Edit 按钮,在编辑界面中的 “Default VM Arguments ”选项中,填入如下值即可。
-Xms512m -Xmx1024m(看你电脑配置,自己分配大小)
三、 修改Run Configurations
在项目上右键,依次点击“Run As ”-> “Run Configurations ”,在Arguments 参数中的“VM arguments: ”中填入如下值即可。
-Xms512m -Xmx1024m(看你电脑配置,自己分配大小)
四、 查询当前JVM 内存代码
下面是查询当前JVM 内存大小的代码,可以测试以上设置后JVM 的内存是否会变化。增加JVM内存的配置项后,无需重新启动eclipse 。具体的代码如下
public class TestMemory {
/**
* @param args
*/
public static void main(String[] args) {
System. out .println( " 内存信息 :" + toMemoryInfo ());
}
/**
* 获取当前 jvm 的内存信息
*
* @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)" ;
}
}
找