JAVA
JAVAでPYTHONを呼ぶ
jyeounjae
2022. 8. 24. 17:41
우리가 실행하고 있는 자바 프로그램(프로세스)에서 또 다른 하나의 서브 프로그램(서브 프로세스)를 실행하기 위한 클래스이다.
processBuilder.start를 사용해서 새로운 프로세스를 기동하는 것이 가능하다.
우선 processBuilder함수를 사용해서 새롭게 기동할 프로세스의 속성을 관리하는 것이 가능하고, start를 사용해 지정한
속성을 가지는 프로세스 인스턴스를 작성을 한다.
밑 에는 자바에서 파이썬 파일을 실행시키는 예시
ProcessBuilder pb =
new ProcessBuilder("myCommand", "myArg1", "myArg2");
// ProcessBuilder함수를 이용해서 서브 프로세스로 리다이렉트 하는 것이 가능
// mycommand로는 예로 들어 파이썬 파일을 실행시키는 쉘 스크립트가 될 수 있다.
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory(new File("myDir"));
File log = new File("log");
pb.redirectErrorStream(true);
pb.redirectOutput(Redirect.appendTo(log));
Process p = pb.start();
// InputStreamReader를 이용해 프로세스 결과를 문자로 데코드 한다
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));