有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在尝试使用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)****

我正在使用EclipseHeliosIDE

我希望它能为大于50MB的大图像工作


共 (3) 个答案

  1. # 1 楼答案

    这对我很管用

    右键单击要运行的项目。运行方式->;运行配置->;争论

    然后VM中的参数:

    -Xmx1g

  2. # 2 楼答案

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

    例如,要允许128MB内存,您可以执行以下操作:

    java -mx128M MyClass
    

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

    1. 右键单击项目并转到properties
    2. 点击Run/Debug Settings
    3. 选择您的运行配置并单击Edit或单击New以使用Java Application配置类型创建一个
    4. Arguments选项卡上,将-mx128M放在VM参数框中
  3. # 3 楼答案

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

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

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