JAVA단에서 명령프롬프트에 접근하여 결과스트링을 받아오는 방법에 대해 알아보자.
◆ ProcessBuilder
ProcessBuilder객체를 사용하여 Linux 또는 Window의 커맨드라인의 커맨드입력을 실행할 수 있다.
-
- command(“커맨드”)
- 커맨드 입력메서드
-
- directory(new File(“파일경로”))
- 해당 커맨드를 실행할 경로
커맨드 결과 읽기
ProcessBuilder를 통해 start()(커맨드실행)호출 시 Process객체를 반환하고,
해당 객체의 getInputStream()을 통해 커맨드 결괄르 읽어들일 수 있다.
-
- ProcuessBuilder.start()
- 커맨드 실행
-
- Process.getInputStream()
- 커맨드 결과 반환
-
- Process.getErrorStream()
- 커맨드 에러 반환
ProcessBuilder가 반환하는 결과에 에러가 포함되어 있지 않기 때문에 getErrorStream을 따로 생성하여 에러로그를 출력 할 수 있도록 설계해야한다.
ProcessBuilder의 권한
리눅스의 경우 사용자가 여러명이기 때문에 ProcessBuilder를 통해 커맨드를 실행할 때,
해당 권한은 WAS 또는 class를 실행시킨 사용자의 권한으로 실행된다.
따라서 이점을 유의하여 설계해야한다.