0

我正在尝试使用 fork 和 join 框架来执行这个程序。当我将较小尺寸的 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)****

我正在使用日食 Helios IDE。

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

4

3 回答 3

7

它对我来说很好。

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

然后在 VM 参数中:

-Xmx1g

于 2013-01-17T18:11:37.893 回答
2

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

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

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

于 2013-01-17T18:01:43.770 回答
2

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

例如,要允许 128MB 内存,您可以:

java -mx128M MyClass

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

  1. 右键单击该项目并转到properties.
  2. 点击Run/Debug Settings
  3. 选择您的运行配置,然后单击Edit或单击以使用配置类型New创建一个。Java Application
  4. Arguments选项卡上,放入-mx128MVM 参数框。
于 2013-01-17T18:05:08.883 回答