sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
Process p = Runtime.getRuntime().exec(command);
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd a HH:mm:ss");
java.util.Date currDate = new java.util.Date(System.currentTimeMillis());
String currDateStr = sdf.format(currDate);
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), "ms949"));
String line = null;
StringBuffer lineSb = new StringBuffer();
while ((line = br.readLine()) != null) {
lineSb.append(line);
}
if (lineSb.length() > 0) {
log.info("[" + currDateStr + "] " + lineSb); // 실행 결과를 출력
}
Runtime 클래스의 exec() 함수를 이용하여 외부 프로그램을 수행후 커맨드창에서의 실행 결과를 수집하고 싶은 경우 위와 같은 코드로 log 수집이 가능하다
하지만 위와 같은 Java프로그램을 도스커맨드 창에서 수행한 경우에만 실행 결과 수집이 가능하며
Java프로그램을 윈도우 서비스로 등록하여 실행하는 경우엔 실행 결과 메세지를 수집 불가하다
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
5 | [java.lang.ProcessBuilder] “매개변수가 틀립니다” 혹은 ”Cannot run program” | 황제낙엽 | 2021.10.15 | 541 |
4 | 특정 경로에서 쉘 명령어 실행하기 (ProcessBuilder) | 황제낙엽 | 2021.10.08 | 408 |
» | Runtime 클래스의 exec() 함수 실행시의 실행 결과 수집 | 황제낙엽 | 2020.03.26 | 359 |
2 | Runtime 클래스를 이용한 윈도우 프로그램 실행 예제 | 황제낙엽 | 2017.08.01 | 413 |
1 | OS 쉘 명령어(shell script) 실행하기 [ProcessBuilder, Runtime.getRuntime().exec()] | 황제낙엽 | 2012.02.22 | 923 |