Print
카테고리: [ Java ]
조회수: 10348

1. 개요

자바 코드 상에서 OS 명령어를 실행하기 위한 방법 중 ProcessBuilder를 이용하는 예를 살펴본다.


2. 사전지식

OS 명령어 실행을 위한 Arugument는 List<String> 형태로 전달한다. 예를 들면 다음과 같다.

List command = new ArrayList();
command.add("ls");
command.add("-l");
command.add("/"); 

3. 예제 코드

ProcessBuilder processBuilder = new ProcessBuilder(command);

try {
    System.out.println("run " + StrUtil.getListString(command));

    Process process = processBuilder.start();

    BufferedReader outReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));

    String line;
    while ((line = outReader.readLine()) != null) {
        System.out.println(line);
    }
    while ((line = errorReader.readLine()) != null) {
        System.out.println(line);
    }

    int exitCode = process.waitFor();
    System.out.println("\nExited with error code : " + exitCode);
} catch (IOException ex) {
    ex.printStackTrace();
} catch (Exception ex) {
    ex.printStackTrace();
} finally {
    ;
}