Я пытаюсь запустить процесс с использованием Java либо с помощью ProcessBuilder, либо с помощью apache DefaultExecutor как другого пользователя и иметь возможность читать stdout этого процесса: Пример кода, который я имеют:Чтение stdout дочернего процесса «RunAs», запущенного ProcessBuilder или DefaultExecutor
OutputStream out = null;
OutputStream err = null;
InputStream in = null;
String line = "runas /noprofile /user:dev /savecred /env \"java -cp myProj.jar com.myComp.myProj.Main -libjardirs target/lib\"";
CommandLine cmdLine = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValue(0);
PumpStreamHandler streamHandler = new PumpStreamHandler(out, err, in);
executor.setStreamHandler(streamHandler);
streamHandler.start();
ExecuteWatchdog watchdog = new ExecuteWatchdog(60000);
executor.setWatchdog(watchdog);
int exitValue = executor.execute(cmdLine);
Я пробовал разные варианты, но пока не повезло. Runas запускает другой процесс, который выполняется, но stdout получает информацию только от самого runas, который ничего не возвращает и главное, что он возвращает до завершения этого процесса. Я не хочу продолжать выполнение моей программы до завершения выполнения этой банки, и я также хочу иметь возможность получить stdout этой банки во время ее выполнения (или, по крайней мере, когда она закончит выполнение). Также необходимо иметь возможность прекратить выполнение этой банки, если она достигает timelimt
Попробуйте processBuilder.redirectOutput (Redirect.INHERIT) http://stackoverflow.com/questions/10540631/how-to-redirect-child-process-stdout-stderr-to-the-main-process-stdout- stderr-in – MGorgon
@MGorgon, который не поможет в качестве ответа. Проблема заключается в том, что вывод, который требуется OP, не возникает в создаваемом подпроцессе, а вместо этого в еще одном отсоединенном процессе, который запускается «RunAs». –
Это не поможет, так как мы используем Java 6 и 'processBuilder.redirectOutput (Redirect.INHERIT)' существует только в Java 7, и мне не разрешено менять проект на новейшую Java – user2647364