Перенаправить вывод процесса в строку?

Я пытаюсь получить вывод процесса в строку, но у меня возникли некоторые проблемы. Каким-то образом мне удалось получить вывод, сохраненный в отдельном файле (нашел что-то здесь на stackru.com). Вот мой код, чтобы начать процесс:

    String javaHome = System.getProperty("java.home");

    String javaBin = javaHome + File.separator + "bin" + File.separator
            + "java";

    String classpath = System.getProperty("java.class.path");

    String className = klasse.getCanonicalName();
    ProcessBuilder builder = new ProcessBuilder(javaBin, "-cp", classpath,
            className, ip, port, team, "okay");

Запись в файле:

     File log = new File("logfile_deleteable" + a);
     builder.redirectOutput(Redirect.appendTo(log));

     assert builder.redirectInput() == Redirect.PIPE;
     assert builder.redirectOutput().file() == log;
     assert process[a].getInputStream().read() == -1;

И наконец:

    process[a] = builder.start();

1 ответ

Попробуй это

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process[a].getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while ( (line = bufferedReader.readLine()) != null) {
   stringBuilder.append(line);
   stringBuilder.append(System.getProperty("line.separator"));
}
String output = stringBuilder.toString();
Другие вопросы по тегам