Асинхронный вывод Java Runtime.exec ()

Я бы хотел получить вывод длительно выполняющейся команды оболочки, поскольку она доступна вместо ожидания команды для Мой код запускается в новом потоке

Process proc = Runtime.getRuntime().exec("/opt/bin/longRunning");
InputStream in = proc.getInputStream();
int c;
while((c = in.read()) != -1) {
    MyStaticClass.stringBuilder.append(c);
}

Проблема в том, что моя программа в / opt / bin / longRunning должна завершиться до того, как InputStream будет назначен и прочитан. Есть ли хороший способ сделать это асинхронно? My цель состоит в том, чтобы запрос ajax возвращал текущее значение MyStaticClass.stringBuilder.toString () примерно каждую секунду.

Я застрял на Java 5.

Спасибо! {{1} } W

6
задан wmarbut 13 October 2011 в 17:23
поделиться