- 전체
- JAVA 일반
- JAVA 수학
- JAVA 그래픽
- JAVA 자료구조
- JAVA 인공지능
- JAVA 인터넷
- Java Framework
- Java GUI (AWT,SWING,SWT,JFACE)
- SWT and RCP (web RAP/RWT)[eclipse], EMF
JAVA 일반 Java로 외부 프로그램 실행 ( ProcessBuilder 사용)
2015.03.17 13:12
Java로 외부 프로그램 실행 ( ProcessBuilder 사용)
자바로 외부 프로그램 실행 시키는 방법중에 ProcessBuilder 에 대해서 간단하게 소개 하려고 한다. 자바에서는 외부 프로그램 실행 시 출력 내용을 바로 확인 할 수 없고 버퍼에 저장 후 출력하는 형식으로 확인 하여야 한다. JDK 1.4 버전 이하에서는 exec() 메소드를 이용하여 외부 프로그램을 실행 시킬 수 있고 JDK 1.5 버전 이상에서는 ProcessBuilder 객체를 이용하여 외부 프로그램을 실행 시킬 수 있다. Process 객체 생성 후 실행 할 커맨드를 다음과 같이 쪼개어 인자값으로 넣어 주어야 한다. Process process = new ProcessBuilder("cmd", "dir", "/w").start(); 위와같이 표현 한다면 cmd 커맨드 창을 실행 후 dir /w 명령어를 실행 한다는 의미 이다. 혹은 다음과 같이 배열을 이용하여 표현 할 수도 있다. String[] cmd = new String[] {"cmd", "dir", "/w"}; Process process = new ProcessBuilder(cmd).start(); 이렇게 실행 한 결과를 버퍼에 저장 후 표준 출력을 화면에 표시 하여야 하는데 다음과 같이 표현 할 수 있다. BufferedReader stdOut = new BufferedReader( new InputStreamReader(process.getInputStream()) ); // 표준출력 상태를 출력 InputStreamReader 객체를 통하여 위 process 객체에서 출력된 스트림을 입력 받아 버퍼에 저장 후 while 문을 통하여 버퍼에 저장 된 내용을 표시하여 주는 것이다. 하나의 예로 웹 브라우저를 띄운 후 원하는 페이지로 이동 하는것을 예를 든다면 다음과 같이 할 수 있다. String addr = "http://www.naver.com"; 이렇게 하면 rundll32를 통하여 웹 브라우저 실행 후 네이버로 이동된다. |
[출처] http://www.javapractices.com/topic/TopicAction.do?Id=82
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.