Java可以直接調(diào)用Linux命令,形式如下:
Runtime.getRuntime().exec(command)
舉例:運(yùn)行l(wèi)s,top命令可以這樣:
Runtime.getRuntime().exec("ls");
但是這樣執(zhí)行時(shí)沒有任何輸出,原因:
調(diào)用Runtime.exec方法將產(chǎn)生一個(gè)本地的進(jìn)程,并返回一個(gè)Process子類的實(shí)例,
(注意:Runtime.getRuntime().exec(command)返回的是一個(gè)Process類的實(shí)例),
該實(shí)例可用于控制進(jìn)程或取得進(jìn)程的相關(guān)信息. 由于調(diào)用Runtime.exec方法所創(chuàng)建的子進(jìn)程沒有自己的終端或控制臺(tái),因此該子進(jìn)程的標(biāo)準(zhǔn)IO(如stdin,stdou,stderr)都通過Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向給它的父進(jìn)程了.用戶需要用這些stream來向子進(jìn)程輸入數(shù)據(jù)或獲取子進(jìn)程的輸出. 可以采用如下方法:
try
{
Process process = Runtime.getRuntime().exec ("ls");
InputStreamReader ir=newInputStreamReader(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());
}
posted on 2007-05-08 10:45
Derek.Guo 閱讀(7450)
評(píng)論(2) 編輯 收藏