Tomcat 7.0超出的原因:java.lang.OutOfMemoryError:Windoes服务器中的java堆空间

Tomcat 7.0超出的原因:java.lang.OutOfMemoryError:Windoes服务器中的java堆空间,java,windows,tomcat,out-of-memory,Java,Windows,Tomcat,Out Of Memory,我正在使用Tomcat 7.0和Windows Server OS 2008。 我试图上传30 MB的文件时,我试图读取文件,然后下面的错误生成 我有6GB内存,6GB内存中有2GB是免费的 Caused by: java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41) at java.awt.image.Raste

我正在使用Tomcat 7.0和Windows Server OS 2008。 我试图上传30 MB的文件时,我试图读取文件,然后下面的错误生成

我有6GB内存,6GB内存中有2GB是免费的

Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.awt.image.DataBufferInt.<init>(DataBufferInt.java:41)
    at java.awt.image.Raster.createPackedRaster(Raster.java:458)
    at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
    at java.awt.image.BufferedImage.<init>(BufferedImage.java:312)
    at net.coobird.thumbnailator.util.BufferedImages.copy(Unknown Source)
    at net.coobird.thumbnailator.tasks.io.OutputStreamImageSink.write(Unknown Source)
    at net.coobird.thumbnailator.tasks.SourceSinkThumbnailTask.write(Unknown Source)
    at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)
    at net.coobird.thumbnailator.Thumbnails$Builder.toOutputStream(Unknown Source)
    at com.toocoolproductions.model.service.impl.UserSettingsServiceImpl.getScaledImage(UserSettingsServiceImpl.java:332)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
我在-Xmx1024m-Xms1024M-XX:PermSize=256m-XX:MaxPermSize=256m的更改后尝试了很多不同大小的更改,但这些对我不起作用


请帮我解决这个问题

tomcat没有6GB的容量。您只为Tomcat分配了1GB。即使这样,30 Mb也不会让服务器停机。您说您试图上载文件,但在读取文件时抛出了错误。您确定上载成功吗?您正在执行一个
缓冲区映像。复制
。你在那个班还有其他的照片吗?你能在出错时得到堆转储吗?如果您使用的是Oracle JDK,请尝试以下设置
-XX:HeapDumpPath=./java_pid.hprof和-XX:-HeapDumpOnOutOfMemoryError
成功上载文件。当我试图从它生成Thubnail时,这个错误正在生成。让我试着像你说的那样生成转储文件。如果我设置.hprof文件会怎么样?这个配置有什么用?看起来你正在使用这个库。您能将下面的内容放在usersetingsServiceImpl.java的第331行吗?Runtime=Runtime.getRuntime();System.out.println(“堆使用率[Mb]:”+(runtime.totalMemory()-runtime.freemory())/(1024*1024));此外,在您的示例(heap)中,唯一相关的设置是-Xmx和-Xms。您可以尝试使用-Xmx2G-Xms1G。
if exist "%CATALINA_HOME%/jre1.6.0_20/win" (
    if not "%JAVA_HOME%" == "" (
        set JAVA_HOME=
    )

    set "JRE_HOME=%CATALINA_HOME%/jre1.6.0_20/win"
)

set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xmx1024m -Xms1024M  -XX:PermSize=256m -XX:MaxPermSize=256m"
echo %JAVA_OPTS%;