2013-05-04 3 views
2

Я пытаюсь контролировать внешний процесс из Java кода:Started поток ошибок Процесс пуст

String[] Args = { mPath, "\"" + filePath + "\"" }; 
ProcessBuilder pb = new ProcessBuilder(Args); 
mProcess = pb.start(); 

Тогда я хочу, чтобы прочитать что-то из STDERR:

mError = new BufferedReader(new InputStreamReader(
    mProcess.getErrorStream())); 
if (mError.ready()){ 
    //read 
} 

И готов() всегда возвращает false.

Но после этого:

pb.redirectError(Redirect.to(new File("c:\\err.log"))); 

Все сообщения об ошибках можно найти в файле err.log. Что я делаю неправильно?

+0

... есть что-нибудь на stdout? – radai

+0

Я не видел, что вы пытались прочитать из потока ошибок –

+0

mError.ready() is false, ничего не значит читать – styanton

ответ

0

Попробуйте под кодом, это сработало для меня.

ProcessBuilder builder = new ProcessBuilder(ARGS); 
builder.redirectErrorStream(true); // setting true 
+0

Does'n works, () .ready() также является ложным. – styanton