java中執行外部命令

在java中可以通過Runtime.getRuntime().exec(cmd)來執行外部命令,我比較常用的是調用shell腳本來完成某些工作,也可以直接執行一個os 的命令,比較調用imagemagick來完成圖片的一些操作,其中需要注意的有兩點,1是最好帶上命令的完整路徑,否則命令可能不會被執行,而且也沒有任何報錯的信息輸出,2特別要注意空格,比如文件名中存在空格的情況,文件名中的空格可以用引號來引起來,從而不會影響命令的正確執行,但有些地方的空格不能這麼簡單的處理,那麼可以通過傳遞一個數組給exec()方法來解決,數組有過缺點,就是當命令參數比較多的話,可讀性比較差,彌補的方法就是還用字符串,不過把必須有空格的地方用一個特殊字符串來替換,等命令字符串拼接好了後再來處理這個字符串,把它變成數組,同時記得把剛纔的特殊字符串換成空格。

    Process process = Runtime.getRuntime().exec(cmd);
 
    InputStream fis = process.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(fis));
   
    String line = null;
    while ((line = br.readLine()) != null) {
  System.out.println(line);
    }

int flag = process.exitValue(); //可以通過flag來判斷命令是否執行成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章