프로세스가 전경 또는 배경인지 여부는 문제가 아닙니다. Java를 사용하여 프로세스를 시작하면 Java를 사용하여 해당 프로세스의 라이프 사이클을 제어해야합니다. Java API는 프로세스의 다양한 속성에 대한 액세스를 제공합니다. 여기에 관심있는 부분은 프로세스의 결과입니다. 이는 'InputStream
'프로세스에 의해 표현됩니다. 반 직관적 인 것처럼 보이지만 Java 프로그램의 관점에서 프로세스의 출력은 프로그램의 입력이기 때문에 의미가 있습니다. 반대로 프로세스에 데이터를 보내야하는 경우 'OutputStream
'프로세스에 기록합니다.
프로세스 'InputStream
및 인쇄 액세스 정리해 것을 명령 줄에 : 프로세스가 어떤 입력을 기다리는되지 않도록
Process process = new ProcessBuilder("C:\\Path\\To\\My\\Application.exe").start();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
StringBuilder output = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
output.append(line);
}
System.out.println(line);
이 코드는 물론, 가정, 즉, 그것을 대화식이 아닙니다.
Application.exe 뒤에 '&'를 추가하여 백그라운드에서이 명령을 실행하면; 명령 실행 결과를 얻을 수 있습니까? –