제목이 혼란 스럽다면 미안하지만 자바의 다른 응용 프로그램으로 파이프되는 응용 프로그램의 표준 출력을 가져올 수 있는지 궁금합니다.다른 응용 프로그램에 파이프 된 응용 프로그램의 콘솔 텍스트 캡쳐
다음은 명령 줄입니다.
sox -d -t wav - | lame - test.mp3
bash에서 실행하면 출력됩니다.
Input File : '/dev/dsp' (ossdsp)
Channels : 2
Sample Rate : 48000
Precision : 16-bit
Sample Encoding: 16-bit Signed Integer PCM
In:0.00% 00:00:25.00 [00:00:00.00] Out:1.20M [ -|=- ] Clip:0
마지막 줄은 사용자가 SIGINT를 보낼 때까지 sox에 의해 업데이트됩니다.
문제는 Java에서 해당 프로세스의 InputStream이 데이터를 생성하지 않는다는 것입니다. 그러나 내가 간지럽 히기 위해 sox의 파이프를 생략하면 sox -d -t wav test.wav
, InputStream이 데이터를 가져옵니다. 제 질문은, 콘솔에 무슨 일이 일어 났습니까? 어떻게 접근 할 수 있습니까?
어떻게 Java를 사용하여이 명령을 실행합니까? 'Runtime.exec()'? 'ProcessBuilder'? –