Ниже приведена моя программа, которую я написал, чтобы запустить процесс в Linux и распечатать результат в консоли.Не удалось прочитать поток из внешнего процесса
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Driver {
public static void main(String[] args) {
try {
Process process = new ProcessBuilder("/usr/bin/R").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Я ожидаю, что версия R и другие вещи, которые будут отображаться, когда я начинаю R в терминале, печататься в консоли. Но ничего не печатается, и исключений нет.
В чем проблема?
EDIT
Моя программа выше работает, когда я использую команду типа «LS» или «пс». но не для какой-либо команды, которая не выходит из нее
Во-первых, когда вы запускаете процесс через java, он доступен для просмотра в верхней командной строке на * unix или в проводнике процессов под Windows? –
должен ли он быть включен в верхнюю часть даже после выхода моей программы Java? – DesirePRG
Перед тем, как начать чтение, попытайтесь закрыть выходной поток процесса. – EJP