2012-08-09 6 views
0

Java에서 호출하여 실행해야하는 R 스크립트가 있습니다. 이 코드를 시도 : Runtime.getRuntime().exec("Rscript pathTo/R/myScript.R"). 나는 그것을 잘 실행 된 Windows 명령에서 실행하지만 Eclipse에서이 코드를 사용하여 Java 클래스를 실행하면 아무 일도 발생하지 않습니다. 콘솔은 아무런 오류없이 아무런 오류도 표시하지 않습니다. 누군가 Java에서이 스크립트를 실행하는 방법을 말해 줄 수 있습니까?Java에서 R 스크립트 실행

답변

1

기본적으로 java에서 실행되는 Process은 표준 입력, 표준 출력 및 파이프로 리디렉션 된 표준 오류가 있습니다.이 표준 오류는 java 내에서 액세스 할 수 있습니다. 표준 출력 및 오류 파이프를 읽고 텍스트를 Java 응용 프로그램의 출력으로 직접 전송하지 않으면 출력이 표시되지 않습니다. 또한 파이프의 내부 버퍼가 가득 차게되면 루트가 데이터를 쓰는 것을 기다리는 동안 하위 응용 프로그램도 차단할 수 있습니다. 따라서 프로세스가 중단되어 절대로 종료되지 않습니다.

Java 7부터는 ProcessBuilder.inheritIO을 사용하여 Java 응용 프로그램의 I/O 채널을 상속 할 수 있습니다. 이렇게하면 스트림에서 직접 읽지 않아도됩니다.