java에서 외부 프로그램을 실행시킬일은 없겠지만 우연히 한번 사용하게 되어 알게된 샘플 소스.


RunProgram.java 샘플 소스 :


RunProgram.java 샘플 소스 설명 : 윈도우의 ipconfig 명령어를 실행시킨다.

Runtime 클래스의 exec() 메소드로 외부 프로그램을 실행시키며 ( p = run.exec(strCmd); )
리턴되는 Process 객체를 통해 프로그램이 종료될때까지 기다릴 수 있다. ( int rst = p.waitFor(); )
실행된 외부 프로그램에 대한 입출력 내용은
    p.getErrorStream();
    p.getInputStream();
    p.getOutputStream();
를 통해 주거나 받을 수 있다.
세가지 Stream 모두 사용하지 않더라도 항상 가져와 close() 해줘야 한다.

p.destroy();는 subprocess를 모두 강제 종료시킨다.

샘플 소스에선 실행시킨 외부 프로그램으로 부터 비동기적으로 메시지가 오는 경우를 고려하여
StreamPrintThread라는 곳에 Stream을 넘겨준후 별도의 Thread로 메세지를 출력한다.


...



'Java' 카테고리의 다른 글

간단하게 gzip 압축 및 해제 해보기  (0) 2010.02.03
Java Thread  (0) 2010.01.24
Exception 을 문자열로...  (0) 2009.09.07
Java Compile 사용  (0) 2009.08.26
SimpleDateFormat -> FastDateFormat  (1) 2009.06.29
용어 설명  (0) 2009.02.23
jconsole test - (sun jdk 1.5)  (0) 2009.02.23
SUN JDK 1.4.2 Heap dump Option  (0) 2009.01.30