Java調(diào)用Linux命令行
Java可以直接調(diào)用Linux命令,你知道Java怎么調(diào)用Linux命令行么?接下來(lái)是小編為大家收集的Java調(diào)用Linux命令行,歡迎大家閱讀:
Java調(diào)用Linux命令行
Runtime.getRuntime().exec(command)
舉例:運(yùn)行l(wèi)s,top命令可以這樣:
Runtime.getRuntime().exec("ls");
但是這樣執(zhí)行時(shí)沒(méi)有任何輸出,原因:
調(diào)用Runtime.exec方法將產(chǎn)生一個(gè)本地的進(jìn)程,并返回一個(gè)Process子類(lèi)的實(shí)例,
(注意:Runtime.getRuntime().exec(command)返回的是一個(gè)Process類(lèi)的實(shí)例),
該實(shí)例可用于控制進(jìn)程或取得進(jìn)程的相關(guān)信息. 由于調(diào)用Runtime.exec方法所創(chuàng)建的子進(jìn)程沒(méi)有自己的終端或控制臺(tái),因此該子進(jìn)程的標(biāo)準(zhǔn)IO(如stdin,stdou,stderr)都通過(guò)Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向給它的父進(jìn)程了.用戶(hù)需要用這些stream來(lái)向子進(jìn)程輸入數(shù)據(jù)或獲取子進(jìn)程的輸出. 可以采用如下方法:
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());
}
看了“Java調(diào)用Linux命令行”還想看:
2.Linux系統(tǒng)在命令行中實(shí)現(xiàn)Wifi 連接的方法