2016-02-11 73 views
0

我添加了im4java 1.4.0的gradle依赖项。并试图在我的Linux系统中运行应用程序。im4java错误,无法运行程序“转换”:错误= 2,没有这样的文件或目录

下面的代码

public static void main(String[] args) throws Exception { 
    // TODO Auto-generated method stub 
    IMOperation op = new IMOperation(); 
    op.addImage(); 
    op.resize(400, 500);// input 
    op.addImage("png:-");     // output: stdout 
    BufferedImage image = ImageIO.read(new URL("http://pic.youmobile.org/imgcdn/google_icon_play_materiel.png")); 
    // set up command 
    ConvertCmd convert = new ConvertCmd(); 
    Stream2BufferedImage s2b = new Stream2BufferedImage(); 
    convert.setOutputConsumer(s2b); 


    // run command and extract BufferedImage from OutputConsumer 
    convert.run(op,image); 

    BufferedImage img = s2b.getImage(); 
    ImageIO.write(img, "png", new File("output.png")); 

     } 

,但它引发错误

 Exception in thread "main" org.im4java.core.CommandException: java.io.IOException: Cannot run program "convert": error=2, No such file or directory 
at org.im4java.core.ImageCommand.run(ImageCommand.java:219) 
at com.quixey.media.service.converter.Test.main(Test.java:33) 
    Caused by: java.io.IOException: Cannot run program "convert": error=2, No such file or directory 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 
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) 
... 1 more 
    Caused by: java.io.IOException: error=2, No such file or directory 
at java.lang.UNIXProcess.forkAndExec(Native Method) 
at java.lang.UNIXProcess.<init>(UNIXProcess.java:248) 
at java.lang.ProcessImpl.start(ProcessImpl.java:134) 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 
... 4 more 

请问这个错误呢?如何解决?

回答

1

它正在尝试运行imagemagick的convert命令,但这不在PATH中。 im4java只是一个从java程序运行imagemagic命令的界面。您需要在PATH中有imagemagick。

+0

我已经将jmagick添加到了gradle依赖关系中,不会那么令人满意。而且当我使用jmagick库运行代码时,它会抛出错误,而不是在java库路径中找到。 – uttam

+0

在你提到的im4java的帖子中。 jmagick是不同的。 jmagic是imagemagick的c api的封装,im4java使用imagemagic的cli。 这从http://im4java.sourceforge.net/很清楚。 – Kishore

+0

我只在gradle.build.I中添加了依赖关系,或者没有下载任何imagemagick工具。所以,我需要安装imageMagick并给出PATH。 – uttam

相关问题