배치(bat) 또는 쉘(sh) 실행하는 자바 코드 (190214 수정)

배치(bat) 또는 쉘(sh) 실행하는 자바 코드 (190214 수정)

실행되었을 때 터미널 창에 찍히는 값을 가져올 수 있다.

ProcessBuilder processBuilder = null;
Process process = null;

try {

    String osType = “window”;

    // String osType = “unix”;

    String filePath = “”;

    if (osType.toLowerCase().indexOf(“window”) > -1) {
        processBuilder = new ProcessBuilder(“CMD”, “/c”, filePath /* 배치 파일 경로 */);
    } else {
        processBuilder = new ProcessBuilder(“sh”,filePath /* 쉘 파일 경로 */);
    }

    processBuilder.redirectErrorStream(true);
    process = processBuilder.start();
     
    BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line = null;
     
    while ((line = br.readLine() ) != null) {

        System.out.println(line);

    }

} catch (Exception e) {

    e.printStackTrace();

}

예제로 bat 파일을 만들고 싶다면 아래와 같이 작성해서 bat확장자로 저장하면 된다.

@echo off

echo 첫 번째 라인
echo 두 번째 라인
echo next line
echo bye