2007/11/06 19:35

앞서, Runtime.getRuntime.exec()를 이용하여 실행시간에 어떤 명령을 수행할 수 있음을 알아보았습니다. 이번에는 exec()로 수행한 명령의 출력결과를 어떻게 처리할 수 있는지 알아보겠습니다.

다음은 ping 명령을 수행하여 화면에 출력한 간단한 예제 프로그램입니다.
---------------------------------------------------------------
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;

public class RuntimeEx {
 public static void main(String[] args) throws IOException {
 
  String[] cmd = {"ping", "kornet.net" };
  // exec()의 파라미터는 String과 String[] 두가지 형태를 받습니다.
  // String형을 사용하면 어떤 실행파일을 수행하는 것이고,
  // String배열을 사용하는 경우, 첫번째 값이 실행할 파일명, 두번째 이상의 배열값은
  // 실행파일의 아규먼트로 사용됩니다.
  // 즉, ping kornet.net 을 수행하는 것과 같습니다
  Process process = Runtime.getRuntime().exec(cmd);
 
  InputStream in = process.getInputStream();
  Scanner s = new Scanner(in);
  while(s.hasNextLine() == true) {
    // 필요에 따라 s.nextLine()의 내용을 처리합니다.
    // 예를 들어, textArea와 같은 곳에 처리내용을 넣을 수도 있겠죠.
    // 본 예제에서는 표준출력으로 간단히 보여주도록 구현합니다.
    System.out.println(s.nextLine());
  };
 }
}

Posted by kimgisa.net