Java ProcessBuilder 클래스를 통해 프로세스를 시작하면 Java InputStreams
및 OutputStreams
과 같이 해당 프로세스의 표준 입력, 표준 출력 및 표준 오류 스트림에 대한 모든 액세스 권한을 갖습니다. 그러나 이러한 스트림을 System.in
, System.out
및 System.err
에 원활하게 연결할 수있는 방법을 찾을 수 없습니다.Java에서 상속 된 stdin/stdout/stderr을 사용하여 프로세스 시작 6
redirectErrorStream()
을 사용하면 서브 프로세스의 표준 출력 및 표준 오류가 포함 된 단일 InputStream
을 얻을 수 있으며이를 통해 루프를 반복하여 내 표준을 통해 전송할 수 있습니다.하지만이를 수행 할 방법을 찾을 수는 없습니다. 사용자가 C system()
호출을 사용했다면 그 사람이 할 수있는 것처럼 프로세스에 입력하십시오.
Java SE 7이 출시 될 때 이것이 가능할 것으로 보입니다. 현재 해결 방법이 있는지 궁금 할 것입니다. 보너스는 자식 프로세스의 isatty()
의 결과가 리다이렉션을 수행하는 경우 가리 킵니다.
죄송합니다. – jjnguy
문제 없습니다. (나는 그런데 당신을 downvoted 사람이 아니었다.) –
흠, 글쎄, 그 사람 덕분에 un-down-vote. 그리고 존 선생님, 저를 낮추지 않은 것에 대해 감사드립니다. – jjnguy