在java程序中有時候需要調用操作系統的一些功能,特別是在unix/linux環境下,命令行提供了很多有用功能。比如啟動或者停止服務。我寫個簡單的程序,可以幫助理解。
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class CommandLine {
public static void main(String[] args) throws IOException {
if (args == null || args.length == 0) {
System.out.println("請輸入命令行參數(例:java CommandLine 'netstat')");
} else {
String cmd = "";
for (int i = 0; i < args.length; i++)
cmd += " " + args[i];
try {
Runtime run = Runtime.getRuntime();
Process p = run.exec(cmd);//啟動另一個進程來執行命令
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
BufferedInputStream err = new BufferedInputStream(p.getErrorStream());
BufferedReader inBr = new BufferedReader(new InputStreamReader(in));
BufferedReader errBr = new BufferedReader(new InputStreamReader(err));
String lineStr;
while ((lineStr = errBr.readLine()) != null)
System.out.println(lineStr);
while ((lineStr = inBr.readLine()) != null)
System.out.println(lineStr);
//檢查命令是否執行失敗。
try {
if (p.waitFor()!=0) {
if(p.exitValue()==1)//p.exitValue()==0表示正常結束,1:非正常結束
System.err.println("命令執行失敗!");
}
}catch (InterruptedException e){
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
執行程序:
posted on 2007-06-02 09:34
破繭而出 閱讀(4276)
評論(0) 編輯 收藏 所屬分類:
Java