环境:
im4java-1.4.0 + GraphicsMagick-1.3.17 ,CentOS操作系统
异常信息如下:
Caused by: java.io.IOException: Cannot run program "gm": java.io.IOException: error=12, 无法分配内存
at java.lang.ProcessBuilder.start(ProcessBuilder.java:471)
at org.im4java.process.ProcessStarter.startProcess(ProcessStarter.java:407)
at org.im4java.process.ProcessStarter.run(ProcessStarter.java:312)
at org.im4java.core.ImageCommand.run(ImageCommand.java:215)
... 50 more
Caused by: java.io.IOException: java.io.IOException: error=12, 无法分配内存
at java.lang.UNIXProcess.<init>(UNIXProcess.java:265)
at java.lang.ProcessImpl.start(ProcessImpl.java:112)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:464)
... 53 more
查看内存:
-bash-3.2$ free -m
total used free shared buffers cached
Mem: 1978 1965 12 0 3 221
-/+ buffers/cache: 1741 237
Swap: 1027 1027 0
分析:
物理内存基本被用光了,free 还有12M,cached 还有221M,Swap 还有0M 。一台机器上运行了很多其它程序,内存是被其它程序占用的,如WebSphere。
解决:
加内存来不及,还要去采购,所以只加大了Swap的空间,再也没有报错。
常见异常总结:
java.io.IOException: error=12, 无法分配内存
java.io.IOException: error=2, No such file or directory
java.io.IOException: error=24, Too many open files
分享到:
相关推荐
4. 错误处理:确保在处理过程中捕获可能出现的异常,进行适当的错误处理。 在压缩包提供的"demo"中,你可能会看到如何在Java项目中集成和使用GraphicsMagick的实例代码。通过阅读和运行这些示例,你可以快速了解...
4. **异常处理**:在Java代码中,应该加入适当的错误处理机制,以应对可能出现的字体缺失、文件路径错误等情况。 5. **批量处理**:如果需要对多个图片添加水印,可以编写一个循环,遍历文件列表并逐一应用水印操作...
当创建大量对象或单个对象占用过大内存时,堆内存可能会耗尽,从而引发OutOfMemoryError异常,即内存溢出。 在使用Thumbnails库时,如果不合理设置参数,可能会一次性加载过多图片到内存中,导致内存瞬间飙升。为了...
MiniMagick是一个Ruby库,它为使用ImageMagick或GraphicsMagick命令行工具提供了一个方便的接口。这两个工具是强大的图像处理软件,可以执行各种复杂的图像操作,如裁剪、旋转、调整大小、添加边框、应用滤镜等。...
例如,你可能会看到如何实例化Img4Java对象,如何执行转换、裁剪等操作,以及如何处理异常等常见任务。 总结一下,这个压缩包提供了一个使用GraphicsMagick和Img4Java进行图像处理的Java示例。GraphicsMagick的广泛...
6. **错误处理和日志记录**:理解源码中的异常处理机制,以及如何记录程序运行过程中的信息,有助于调试和优化代码。 7. **文件I/O操作**:学习如何读取和写入不同图像格式的文件,以及如何处理文件流。 8. **批处理...
此外,还可以使用第三方库如ImageMagick或GraphicsMagick的Java接口,以获取更强大的图像处理能力,比如将文本转换成图像。 对于PDF水印的生成,除了Apache PDFBox,iText也是一个流行的选择。iText是一个用于生成...
在C++中,可以使用如libpng或GraphicsMagick等库来读写这些格式的图片。 项目设计的目标不仅是实现算法,还涉及了效率分析和动态规划策略的选择。动态规划是解决这类问题的有效方法,尤其是当问题具有重叠子问题和...
前后端都需要处理可能出现的错误,比如网络异常、服务器错误等,并进行日志记录,以便于问题排查和系统优化。 10. **调试与发布** 微信开发者工具提供了强大的调试功能,可以帮助开发者找出并修复问题。完成开发...