0

我正在编写一个使用imagemagick命令编辑图像的 Java 应用程序;但是,这些命令不起作用,我没有从它们那里得到任何输出;实际上,无法识别命令识别,我得到了CreateProcess error=2;这看起来很奇怪,因为imagemagick安装文件夹包含在我的 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();
        }
    }
}
4

1 回答 1

2

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

于 2013-09-25T15:03:34.907 回答