切图异常: Cannot run program "gm": error=2, No such file or directory 处理
2017-08-15 15:30
656 查看
切图异常: Cannot run program “gm”: error=2, No such file or directory 处理
使用im4java、ImageMagick/GraphicsMagick进行切图,结果在测试环境运行时提示gm找不到这个异常,org.im4java.core.CommandException: java.io.IOException: Cannot run program "gm": error=2, No such file or directory at org.im4java.core.ImageCommand.run(ImageCommand.java:219) ~[im4java-1.4.0.jar:na] at com.test.craw.utils.ImageUtils.zoomImage(ImageUtils.java:182) [classes/:na] at com.test.craw.utils.ImageUtils.zoomImageWidth(ImageUtils.java:202) [classes/:na] at com.test.craw.service.BeautyService.crop(BeautyService.java:205) [classes/:na] at com.test.craw.service.BeautyService.updateGallery(BeautyService.java:107) [classes/:na] at com.test.craw.task.TestSpiderTask$TestBeautyThread.run(TestSpiderTask.java:113) [classes/:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_80] Caused by: java.io.IOException: Cannot run program "gm": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) ~[na:1.7.0_80] at org.im4java.process.ProcessStarter.startProcess(ProcessStarter.java:407) ~[im4java-1.4.0.jar:na] at org.im4java.process.ProcessStarter.run(ProcessStarter.java:312) ~[im4java-1.4.0.jar:na] at org.im4java.core.ImageCommand.run(ImageCommand.java:215) ~[im4java-1.4.0.jar:na] ... 6 common frames omitted Caused by: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) ~[na:1.7.0_80] at java.lang.UNIXProcess.<init>(UNIXProcess.java:187) ~[na:1.7.0_80] at java.lang.ProcessImpl.start(ProcessImpl.java:130) ~[na:1.7.0_80] at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) ~[na:1.7.0_80] ... 9 common frames omitted [ERROR][2017-08-15 14:30:24] - [com.test.craw.service.BeautyService] - 切图失败:Logger[com.test.craw.service.BeautyService] java.lang.Exception: org.im4java.core.CommandException: java.io.IOException: Cannot run program "gm": error=2, No such file or directory at com.test.craw.utils.ImageUtils.zoomImage(ImageUtils.java:191) ~[classes/:na] at com.test.craw.utils.ImageUtils.zoomImageWidth(ImageUtils.java:202) ~[classes/:na] at com.test.craw.service.BeautyService.crop(BeautyService.java:205) [classes/:na] at com.test.craw.service.BeautyService.updateGallery(BeautyService.java:107) [classes/:na] at com.test.craw.task.TestSpiderTask$TestBeautyThread.run(TestSpiderTask.java:113) [classes/:na] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_80] Caused by: org.im4java.core.CommandException: java.io.IOException: Cannot run program "gm": error=2, No such file or directory at org.im4java.core.ImageCommand.run(ImageCommand.java:219) ~[im4java-1.4.0.jar:na] at com.test.craw.utils.ImageUtils.zoomImage(ImageUtils.java:182) ~[classes/:na] ... 5 common frames omitted Caused by: java.io.IOException: Cannot run program "gm": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) ~[na:1.7.0_80] at org.im4java.process.ProcessStarter.startProcess(ProcessStarter.java:407) ~[im4java-1.4.0.jar:na] at org.im4java.process.ProcessStarter.run(ProcessStarter.java:312) ~[im4java-1.4.0.jar:na] at org.im4java.core.ImageCommand.run(ImageCommand.java:215) ~[im4java-1.4.0.jar:na] ... 6 common frames omitted Caused by: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) ~[na:1.7.0_80] at java.lang.UNIXProcess.<init>(UNIXProcess.java:187) ~[na:1.7.0_80] at java.lang.ProcessImpl.start(ProcessImpl.java:130) ~[na:1.7.0_80] at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028) ~[na:1.7.0_80] ... 9 common frames omitted
在命令行直接输入gm,能正常输入信息
GraphicsMagick 1.3.26 2017-07-04 Q8 http://www.GraphicsMagick.org/ Copyright (C) 2002-2017 GraphicsMagick Group. Additional copyrights and licenses apply to this software. See http://www.GraphicsMagick.org/www/Copyright.html for details. Usage: gm command [options ...] Where commands include: animate - animate a sequence of images batch - issue multiple commands in interactive or batch mode benchmark - benchmark one of the other commands compare - compare two images composite - composite images together conjure - execute a Magick Scripting Language (MSL) XML script convert - convert an image or sequence of images display - display an image on a workstation running X help - obtain usage message for named command identify - describe an image or image sequence import - capture an application or X server screen mogrify - transform an image or sequence of images montage - create a composite image (in a grid) from separate images time - time one of the other commands version - obtain release version
在环境变量文件/etc/profile中页设置了对应的环境变量
export GMAGICK_HOME="/usr/local/GraphicsMagick-1.3.26" export PATH="$GMAGICK_HOME/bin:$PATH" LD_LIBRARY_PATH=$GMAGICK_HOME/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH export IM4JAVA_TOOLPATH=/usr/local/GraphicsMagick-1.3.26/bin
通过验证,发现需要手动在ConvertCmd 初始化后,设置一个命令查询目录【convert.setSearchPath(“/usr/local/GraphicsMagick-1.3.26/bin”);】
IMOperation op = new IMOperation(); op.addImage(imagePath); op.crop(width, height, x, y); op.addImage(newPath); ConvertCmd convert = new ConvertCmd(true); convert.setSearchPath("/usr/local/GraphicsMagick-1.3.26/bin"); convert.run(op);
不仅仅是
ConvertCmd需要添加, 所有继承
ImageCommand的类,使用中都需要,比如:
IdentifyCmd
下面是继承
ImageCommand的所有类;
使用的时候最好加上
setSearchPath("/usr/local/GraphicsMagick-1.3.26/bin")
再次运行,就不会提示异常了!
相关文章推荐
- 通过sqoop导入Oracle数据到Hive时异常.IOException: Cannot run program "hive": error=2, No such file or directory
- 转换webp格式图片,java.io.IOException: Cannot run program "dwebp": error=2, No such file or directory
- 错误 'Cannot run program "/home/uv/IDE/adt/sdk/platform-tools/adb": error=2, No such file or directory
- Android -Cannot run program "XXX/sdk/tools/emulator": error=2, No such file or directory
- 错 'Cannot run program "/home/uv/IDE/adt/sdk/platform-tools/adb": error=2, No such file or directory
- Cannot run program \"cd\": error=2, No such file or directory
- Android问题集锦之二十九:Cannot run program "/xx/build-tools/xx/aapt": error=2, No such file or directory
- Android问题集锦之二十九:Cannot run program "/xx/build-tools/xx/aapt": error=2, No such file or directory
- 错误 'Cannot run program "/home/uv/IDE/adt/sdk/platform-tools/adb": error=2, No such file or directory
- Glassfish Cannot run program "/usr/libexec/StartupItemContext; error=2 , No such file or directory
- nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)处理方法
- Ubuntu Cannot run program "../SDK/build-tools/xxx/aapt": erro = 2 No such file or directory
- Cannot run program "/usr/local/android-sdk-linux/build-tools/23.0.2/aapt": error=2, No such file or
- java.io.IOException - Cannot run program "git": java.io.IOException: error=2, No such file or direct
- Cannot run program "/home/user/Android/Sdk/build-tools/23.0.2/aapt": error=2 No such file or directo
- Ubuntu Cannot run program "../SDK/build-tools/xxx/aapt": erro = 2 No such file or directory
- error: cannot run .git/hooks/pre-commit: No such file or directory解决方法
- nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
- [异常解决] Make nRF51 DFU Project Appear "fatal error: uECC.h: No such file or directory"
- error: #5: cannot open source input file "core_cm3.h": No such file or directory