2010-07-12 3 views
3

Я пытаюсь получить данные bash в переменной. Проблема в том, что это так штопать случайным образом. Команда выполняется каждый раз, я вижу, что при запуске приложения X. Однако мой процессор может быть слишком быстрым или медленным для выдачи команды echo и запуска буферизованного чтения во входной поток.Потеря данных из скрипта bash в Java

Как я могу заставить это работать? Мне нужно каким-то образом выдать команду внутри буферизованного читателя.

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 

public class test1 { 

public static void main() { 

    try { 
    Process proc = Runtime.getRuntime().exec("echo Gosh, I sure hope this comes back to java"); 
    BufferedReader read = new BufferedReader(new InputStreamReader(proc 
    .getInputStream())); 

    while (read.ready()) { 
    System.out.println(read.readLine()); 
    } 
    } catch (IOException e) { 
    System.out.println(e.getMessage()); 
    } 
} 

ответ

0

Замените время цикла с этим:

String line; 
while ((line = read.readLine())!=null) { 
    System.out.println(line); 
} 
Смежные вопросы