Exception in thread "Image Fetcher 1" java.lang.OutOfMemoryError图片加载后程序运行显示这个错误,图片无法正确显示,我用的是eclipse做的是一个swing图形游戏,需要大概20多m的图片资源,可是加载超过一张就无法正确显示,哪位大侠帮帮小弟吧!!!

解决方案 »

  1.   

    java.lang.OutOfMemoryError肯定是内存溢出了。可以先加载一部分吧。
      

  2.   

    肯定是你默认的jvm堆内存不够大,可以这样做://1. 选择你的eclipse的快捷方式,右键选择“属性”;
    //2. 在“目标”栏中最后加上如下参数:
       -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
    //3.确定保存后,重新启动eclipse即可!
      

  3.   

    java.lang.OutOfMemoryError
    内存溢出   1. 增加jvm的内存大小。方法有:             1)在执行某个class文件时候,可以使用java -Xmx256M aa.class来设置运行aa.class时jvm所允许占用的最大内存为256M。
                2)对tomcat容器,可以在启动时对jvm设置内存限度。对tomcat,可以在catalina.bat中添加:
     "set CATALINA_OPTS=-Xms128M -Xmx256M
      set JAVA_OPTS=-Xms128M -Xmx256M",或者把%CATALINA_OPTS%和%JAVA_OPTS%代替为-Xms128M -Xmx256M   2.    优化程序,释放垃圾。        主要包括避免死循环,应该及时释放种资源:内存, 数据库的各种连接,防止一次载入太多的数据。导致 java.lang.OutOfMemoryError的根本原因是程序不健壮。因此,从根本上解决Java内存溢出的唯一方法就是修改程序,及时地释放没用的对象,释放内存空间。 遇到该错误的时候要仔细检查程序,嘿嘿,遇多一次这种问题之后,以后写程序就会小心多了。
      

  4.   

    Image image=new ImageIcon("images/background.png").getImage();
    使用这种方法加载4m的Png图片应该没问题吧
      

  5.   

     11楼我都把eclipse设置好了 应该是下面的样子吧
    D:\Program Files\Java\jre1.7.0\bin\client\jvm.dll
    eclipse.ee.install.verify=false
    eclipse.home.location=file:/F:/软件备份/eclipse-SDK-3.4.2-win32/eclipse/
    eclipse.launcher=F:\软件备份\eclipse-SDK-3.4.2-win32\eclipse\eclipse.exe
    [email protected]/../p2
    eclipse.p2.profile=SDKProfile
    eclipse.product=org.eclipse.sdk.ide
    eclipse.startTime=1258015738887
    eclipse.vm=D:\Program Files\Java\jre1.7.0\bin\client\jvm.dll
    eclipse.vmargs=-Xms400M
    -Xmx512M
    -XX:PermSize=256M
    -XX:MaxPermSize=512M
    -Djava.class.path=F:\软件备份\eclipse-SDK-3.4.2-win32\eclipse\plugins\org.eclipse.equinox.launcher_1.0.101.R34x_v20081125.jar
    file.encoding=GBK
    file.encoding.pkg=sun.io
    file.separator=\
    java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
    java.awt.printerjob=sun.awt.windows.WPrinterJob