Java調用Linux命令行 – JAVA編程語言程序開發技術文章

Java可以直接調用Linux命令,形式如下:
 Runtime.getRuntime().exec(command)
 舉例:運行ls,top命令可以這樣:
 Runtime.getRuntime().exec("ls");
 但是這樣執行時沒有任何輸出,原因:
 調用Runtime.exec方法將產生一個本地的進程,並返回一個Process子類的實例,
(註意:Runtime.getRuntime().exec(command)返回的是一個Process類的實例),
該實例可用於控制進程或取得進程的相關信息. 由於調用Runtime.exec方法所創建的子進程沒有自己的終端或控制臺,因此該子進程的標準IO(如stdin,stdou,stderr)都通過Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向給它的父進程瞭.用戶需要用這些stream來向子進程輸入數據或獲取子進程的輸出. 可以采用如下方法:
try
{
 Process process = Runtime.getRuntime().exec ("ls");
 InputStreamReader ir=new InputStreamReader(process.getInputStream());
 LineNumberReader input = new LineNumberReader (ir);
 String line;
 while ((line = input.readLine ()) != null){
  System.out.println(line)
}
catch (java.io.IOException e){
 System.err.println ("IOException " + e.getMessage());
}

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。