Я хочу запустить процесс с Java, прочитать его вывод и получить его код возврата. Но пока он выполняется, я хочу иметь возможность отменить его. Я начинаю с запуска процесса:
ProcessBuilder pb = new ProcessBuilder(args);
pb.redirectErrorStream(true);
Process proc = pb.start();
Если я вызываю proc.waitFor(), я ничего не могу сделать, пока процесс не завершится. Поэтому я предполагаю, что мне нужно что-то вроде этого:
while (true) {
see if process has exited
capture some output from the process
decide if I want to cancel it, and if so, cancel it
sleep for a while
}
Правильно ли это? Может ли кто-нибудь дать мне пример того, как это сделать на Java?