2013-09-25 22 views
0

我正在編寫一個java應用程序,它使用imagemagick命令編輯圖像; 但是,這些命令不起作用,我沒有從它們輸出; 其實,這個命令識別是不被識別的,我得到了CreateProcess error=2; 這似乎很奇怪,因爲我的路徑變量中包含了安裝文件夾imagemagick用java執行imagemagick命令不會輸出

這裏是我的代碼:

 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

考慮使用ProcessBuilder。 – Jayan

回答

2

你必須在可執行文件的路徑空間,並且Runtime.exec()調用與它有問題。改爲使用ProcessBuilder;它更容易處理參數中的空格。

+0

謝謝,它的工作原理:D – ianos