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프로그램을 윈도우 서비스로 등록하여 실행하는 경우엔 실행 결과 메세지를 수집 불가하다