Java로 Shell 실행하기

초보개발·2022년 5월 2일
0

JAVA

목록 보기
8/15

https://www.revisitclass.com/java/execute-the-shell-commands-using-processbuilder-in-java/

ProcessBuilder를 이용한 방법

public static void main(String[] args) throws IOException, InterruptedException {
    String homeDirectory = System.getProperty("user.home");

    ProcessBuilder builder = new ProcessBuilder("zsh", "-c", "ls");
    builder.directory(new File(homeDirectory));

    Process result = builder.start();

    if (result.waitFor() != 0) {
        System.exit(-1);
    }

    BufferedReader stdInput = new BufferedReader(new InputStreamReader(result.getInputStream()));
    String output;
    while ((output = stdInput.readLine()) != null){
        System.out.println(output);
    }
}
  1. 현재 사용자의 디렉터리를 가져온다.
System.getProperty("user.home")
  1. zsh로 현재 디렉토리에서 목록을 가져오도록 설정
ProcessBuilder builder = new ProcessBuilder("zsh", "-c", "ls");
builder.directory(new File(homeDirectory));

주의할 점
command는 하나의 문자열로 지정하는 것이 아닌 공백마다 각각 써줘야 한다.

  1. command 실행
Process result = builder.start();
  1. 실행 결과 출력
BufferedReader stdInput = new BufferedReader(new InputStreamReader(result.getInputStream()));
String output;
while ((output = stdInput.readLine()) != null){
    System.out.println(output);
}

0개의 댓글