线程“main”中的异常java.lang.OutOfMemoryError:eclipse上的Java堆空间

时间:2013-01-17 17:55:12

标签: java eclipse exception fork-join

我正在尝试使用fork和join框架执行此program。当我向这个程序提供较小尺寸的JPEG图像时,它工作正常,但是当我给出大小超过4 MB的图像时,它会抛出异常:

****Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at ForkBlur.blur(ForkBlur.java:120)
    at ForkBlur.main(ForkBlur.java:110)****

我正在使用eclipse Helios IDE。

我希望它适用于大小超过50 MB的大图像

3 个答案:

答案 0 :(得分:6)

它对我来说很好。

右键单击要运行的项目。运行方式 - >运行配置 - >参数。

然后在VM参数中:

-Xmx1g

答案 1 :(得分:2)

运行程序时需要指定更大的堆大小。

如果这是您首选的工具,您可以通过eclipse完成。您可以右键单击包含main方法的文件,选择“运行方式”选项 - 这将打开一个对话框,您可以在其中设置主机命令行选项(查找参数部分)。

配置最大堆大小的命令行选项是Xmx;一个例子是Xmx 2g将最大堆大小设置为2 GB。

答案 2 :(得分:2)

您需要告诉JVM为您的程序留出更多内存。如果从命令行运行程序,则可以使用-mx选项指定允许JVM使用多少内存。

例如,要允许128MB的内存,您可以这样做:

java -mx128M MyClass

如果从Eclipse Helios运行,请执行以下操作:

  1. 右键单击该项目,然后转到properties
  2. 点击Run/Debug Settings
  3. 选择您的运行配置并点击Edit或点击New以使用Java Application配置类型创建一个。{/ li>
  4. Arguments标签上,将-mx128M放入VM参数框。