我正在编写一个使用 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();
}
}
}
答案 0 :(得分:2)
在可执行文件的路径中有一个空格,Runtime.exec()
调用遇到问题。请改用ProcessBuilder
;它更容易处理参数中的空格。