我正在尝试使用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的大图像
答案 0 :(得分:6)
它对我来说很好。
右键单击要运行的项目。运行方式 - >运行配置 - >参数。
然后在VM参数中:
-Xmx1g
答案 1 :(得分:2)
运行程序时需要指定更大的堆大小。
如果这是您首选的工具,您可以通过eclipse完成。您可以右键单击包含main方法的文件,选择“运行方式”选项 - 这将打开一个对话框,您可以在其中设置主机命令行选项(查找参数部分)。
配置最大堆大小的命令行选项是Xmx;一个例子是Xmx 2g将最大堆大小设置为2 GB。
答案 2 :(得分:2)
您需要告诉JVM为您的程序留出更多内存。如果从命令行运行程序,则可以使用-mx
选项指定允许JVM使用多少内存。
例如,要允许128MB的内存,您可以这样做:
java -mx128M MyClass
如果从Eclipse Helios运行,请执行以下操作:
properties
。Run/Debug Settings
。Edit
或点击New
以使用Java Application
配置类型创建一个。{/ li>
Arguments
标签上,将-mx128M
放入VM参数框。