读取大小为 330MB 的图像时发生“java.lang.OutOfMemoryError:Java 堆空间”[重复]

Posted

技术标签:

【中文标题】读取大小为 330MB 的图像时发生“java.lang.OutOfMemoryError:Java 堆空间”[重复]【英文标题】:"java.lang.OutOfMemoryError: Java heap space" occurred while reading image of size 330MB [duplicate] 【发布时间】:2016-04-05 10:52:37 【问题描述】:

我正在使用以下代码读取大小为 330MB 的图像文件

BufferedImage img=ImageIO.read("test.png");

如何解决?

【问题讨论】:

谷歌如何使用-Xmx 【参考方案1】:

您需要使用 -Xmx 来增加堆的值。来自Javadoc

指定内存分配池的最大大小(以字节为单位)。 此值必须是大于 2 MB 的 1024 的倍数。追加 字母 k 或 K 表示千字节,或 m 或 M 表示兆字节。 默认值是在运行时根据系统配置选择的。

【讨论】:

完成了......但仍然面临同样的异常

以上是关于读取大小为 330MB 的图像时发生“java.lang.OutOfMemoryError:Java 堆空间”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

当我读取大小为 17 mb 的 100 万个 url 文件时,我的程序占用 163 mb

当文件大小大于 2mb 时,Imagick 无法调整 GIF 图像的大小

为啥 Imagemagick 或 GraphicsMagick 在调整为较小尺寸时会增加我的 PNG 图像的 MB 大小?

将字节转换为位

归档 iphone 时应用程序大小翻倍

将图像大小压缩到 1.5 MB,同时发送到多部分 ios swift