内存溢出Java

时间:2014-11-16 14:22:55

标签: java eclipse

我认为我的Java程序超出了允许的内存使用量......这是Eclipse中出现的错误:

 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at Main.main(Main.java:228)

在尝试使用更好的内存处理之前,有没有什么方法可以基本上增加为程序分配的内存?我希望看到程序终止并至少显示结果。

4 个答案:

答案 0 :(得分:1)

您可以使用cmd-line标志

增加堆大小

例如:

java -Xmx6g myprogram

您可以通过输入java -X来获得完整列表(或者几乎完整列表)。

答案 1 :(得分:1)

您可以使用-Xmx标志为进程分配更多内存:

java -Xmx2G YourProgram

将为进程分配2 GB的内存。

您可以在Eclipse中执行此操作,方法是转到运行配置参数部分,并将-Xmx 2G添加到 VM参数

答案 2 :(得分:1)

增加内存大小是好的,但你也应该考虑到你的程序可能有一些内存泄漏,你真的应该为此烦恼。

答案 3 :(得分:0)

由于我不认为你的程序使用了那么多内存,我怀疑你的程序在某个地方有内存泄漏。
如果您可以Main.java:200直到Main.java:250我们可以检查是否有任何泄漏。

如果您确定您的程序正在使用该内存量,则可以运行
命令提示符(Windows)或终端(Mac OS X或Linux)中的java -Xmx2G -jar foo.jar
或者,如果您在Linux下在Eclipse中运行程序,请执行以下操作:

1)确保Eclipse已关闭
2)在eclipse.ini文件中打开您喜欢的文本编辑器(默认位置:/usr/lib/eclipse/eclipse.ini
3)搜索--Xmx512M并增加此数字(即--Xmx2G
4)保存文件并重新启动Eclipse

有关--Xmx--Xms的任何解释,请参阅Eclipse memory settings when getting "Java Heap Space" and "Out of Memory"

快乐编码:) -Charlie