왜 이것이 걸려 있는지 알 수 없습니다. commons-exec를 통해 실행되는 프로세스에서 출력을 캡처하려고 시도하고 있으며 계속 중단합니다. 아래에서이 동작을 보여주기위한 예제 프로그램을 제공했습니다. 반면에 비동기 인commons-exec : executor.execute (commandLine)를 호출하면 응답하지 않습니다.
import java.io.DataInputStream;
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.ExecuteException;
import org.apache.commons.exec.PumpStreamHandler;
public class test {
public static void main(String[] args) {
String command = "java";
PipedOutputStream output = new PipedOutputStream();
PumpStreamHandler psh = new PumpStreamHandler(output);
CommandLine cl = CommandLine.parse(command);
DefaultExecutor exec = new DefaultExecutor();
DataInputStream is = null;
try {
is = new DataInputStream(new PipedInputStream(output));
exec.setStreamHandler(psh);
exec.execute(cl);
} catch (ExecuteException ex) {
} catch (IOException ex) {
}
System.out.println("huh?");
}
}