2016-02-11 7 views
0

Я добавил зависимость gradle для im4java 1.4.0. И попытка запустить приложение в моей Linux-системе.Ошибка в im4java, Не удается запустить программу «convert»: error = 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 - это просто интерфейс для запуска сообщений imagemagic из java-программы. Вы должны иметь imagemagick в PATH.

+0

Я уже добавил jmagick для зависимостей gradle, не будет этого достаточно. И когда я запускаю код с помощью библиотеки jmagick, он бросает ошибку, а не находится в пути библиотеки java. – uttam

+0

в сообщении вы упомянули im4java. jmagick отличается. jmagic - обертка сэмпирования imagemagick, а im4java использует clm imagemagic. Это видно из http://im4java.sourceforge.net/. – Kishore

+0

Я только добавил зависимость в gradle.build. Я не загружал никаких программ imagemagick и не загружал. Так что мне нужно установить imageMagick и предоставить PATH. – uttam