본문 바로가기

Code/Java

Java 코드 내부에서 외부 프로그램 실행시키기 - exec(), ProcessBuilder

Runtime.exec()와
ProcessBuilder 클래스를 이용하여, 구현할 수 있다.
그리고 apache 프로젝트에 'apache common exec'라는 라이브러리도 있다고 한다.

경험상 외부 프로그램 실행시에는 현재 실행 위치가 잘 안 먹는 경향이 있으니,
절대 경로를 이용해서 명령을 내려주는 것이 여러모로 편하다.

<오늘 작성했던 코드일부>
String binDir_ = System.getProperty("user.dir") + "/exec/node3d/";
String[] cmdArray = new String[] {
binDir_ + "nodes3d.exe",
System.getProperty("user.dir") + "/" + inputFile
};
try {
Process p = new ProcessBuilder(cmdArray).start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("출력 %s :", Arrays.toString(cmdArray));
System.out.println();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}

* 참고링크

'Code > Java' 카테고리의 다른 글

우분투에서 이클립스 셋팅 (한글)  (0) 2011.05.03
경량 DBMS 사용하기  (0) 2010.09.06
Java System Property  (0) 2010.09.06
Rosa 2000 - map toolbar isn't visible.  (0) 2010.04.27
eclipse 부팅을 빠르게...  (0) 2010.04.14