이 발생합니다. 따라서 Java 파일에서 많은 양의 출력을 생성하는 셸 스크립트를 실행하려고합니다. 이 프로세스가 중단되고 완료되지 않습니다.java에서 쉘 스크립트를 호출하면
그러나 쉘 스크립트 내에서 스크립트의 출력을 일부 로그 파일 또는/dev/null Java 파일로 재지 정하여 jiffy로 실행하고 완료합니다.
Java 프로그램이 완료하지 못하는 데이터 량 때문입니까? 그렇다면 어떤 문서가 있습니까? 또는 (문서화 된) 데이터의 양에 제한이 있습니까?
다음은이 시나리오를 시뮬레이션하는 방법입니다. 권리를
#!/bin/sh
# Toggle the line below
exec 3>&1 > /dev/null 2>&1
count=1
while [ $count -le 1000 ]
do
cat some-big-file
((count++))
done
echo
echo Yes I m done
무료 맥주 :
import java.io.InputStream;
public class LotOfOutput {
public static void main(String[] args) {
String cmd = "sh a-script-which-outputs-huuggee-data.sh";
try {
ProcessBuilder pb = new ProcessBuilder("bash", "-c", cmd);
pb.redirectErrorStream(true);
Process shell = pb.start();
InputStream shellIn = shell.getInputStream();
int shellExitStatus = shell.waitFor();
System.out.println(shellExitStatus);
shellIn.close();
} catch (Exception ignoreMe) {
}
}
}
스크립트 'a-script-which-outputs-huuggee-data.sh이'처럼 보일 수 있습니다 : 같은
자바 파일을 볼 것이다 대답. :)
감사 톤! 당신 말이 맞았습니다, 그것이 문제였습니다. – pavanlimo