使用java执行imagemagick命令不会输出

时间:2013-09-25 14:57:39

标签: java command-line command imagemagick path-variables

我正在编写一个使用 imagemagick 命令编辑图像的java应用程序; 然而,命令不起作用,我没有得到它们的输出; 实际上,无法识别命令识别,我得到CreateProcess error=2; 这看起来很奇怪,因为 imagemagick instalation文件夹包含在我的Path变量中。

这是我的代码:

     public class Test {
    public static void main(String argv[]) {
        Runtime ru = Runtime.getRuntime();

        Process p = null;
        try {
            //I've added this as a bouns, this should not be neccessary(methinks)
            String[] s = {"C:\\Program Files\\ImageMagick-6.8.6-Q16"};
            String[] cmd = {"convert", "acc-logo.jpg","-flip", "edited.jpg"};
            p = ru.exec(cmd,s);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        BufferedReader ina = new BufferedReader(new InputStreamReader(
                p.getInputStream()));
        String line = null;
        try {
            while ((line = ina.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:2)

在可执行文件的路径中有一个空格,Runtime.exec()调用遇到问题。请改用ProcessBuilder;它更容易处理参数中的空格。