Я хочу использовать инструмент командной строки linux из моей программы на Java.Я запускаю программу и получаю вывод, используя класс Process (http://download.oracle.com/javase/6/docs/api/java/lang/Process.html):
/* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Process proc = Runtime.getRuntime().exec("octave");
BufferedReader reader =
new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedReader errorReader =
new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedWriter writer =
new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
int c;
while((c = proc.getInputStream().read()) != -1) {
System.out.print((char)c);
}
System.out.println("End");
}
. Я получаю следующий вывод:
GNU Octave, версия 3.0.5 Авторское право (C) 2008 John W. Eaton и др. Это бесплатное программное обеспечение; см. Исходный код для условий копирования. АБСОЛЮТНО НЕТ ГАРАНТИИ, даже для ПРОДАЖИ или ПРИГОДНОСТИ ДЛЯ ОСОБЫЙ ЦЕЛИ.
Octave настроен для "i486-pc-linux-gnu".
Дополнительную информацию о Octave можно получить по адресу http://www.octave.org.
Пожалуйста, внесите свой вклад, если эта программа окажется полезной.информация, посетите http://www.octave.org/help-wanted.html
Сообщить об ошибках (но сначала прочтите http://www.octave.org/bugs.html, чтобы узнать, как написать полезный отчет).
Для получения информации об изменениях по сравнению с предыдущими версиямивведите `news '.
Странная вещь, если я запускаю октаву в терминале, выглядит нормально:
: ~ / workspace / Console / src/ c $ октава
GNU Октава, верsion 3.0.5 Copyright (C) 2008 Джон У. Итон и другие.Это бесплатное программное обеспечение;см. исходный код для условий копирования.АБСОЛЮТНО НЕТ ГАРАНТИИ;даже не для ИЗДЕЛИИ или ФИТНЕСА ДЛЯ ОСОБЕННОЙ ЦЕЛИ.Для получения более подробной информации введите «гарантия».
Octave был настроен для «i486-pc-linux-gnu».
Дополнительная информация о Octave доступна по адресу http://www.octave.org.
Пожалуйста, помогите, если вы найдете это программное обеспечение полезным.Для получения дополнительной информации посетите http://www.octave.org/help-wanted.html
Сообщить об ошибках (но сначала прочтите http://www.octave.org/bugs.html, чтобы узнать, как написать полезный отчет).
Для получения информации об изменениях сВ предыдущих версиях введите `news '.
октава: 1>
Поэтому символы в строке, где запрашивается ввод, не отправляются в мой поток ввода.Зачем?Разве невозможно определить, запрашивается ли ввод?
Спасибо за ваши ответы!
Генрих