2013-09-17 5 views
2

My Shell скрипт под названием "Привет"Вызов простой скрипт из Java не работает

#This is a shell script 
echo "Hello Shell World!" 

Мой Java код,

Runtime.getRuntime().exec(new String[]{"./hello"}); 

Мой Java код выполняется без ошибок, но я не вижу «Hello Shell World!» печатается на терминале.

Я считаю, что мой скрипт выполняется, так как я не получаю таких ошибок, как «привет не может быть выполнен, нет такого файла или каталога».

Я выполняю это на машине Linux Ubuntu. Благодаря!

+0

Что означает ваш [поток ошибок] (http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#getErrorStream())? –

ответ

1

Вы должны использовать читатель, чтобы захватить вывод команды:

Process p=Runtime.getRuntime().exec(new String[]{"./hello"}); 
p.waitFor(); 
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line=reader.readLine(); 
while(line!=null) { 
    System.out.println(line); 
    line=reader.readLine(); 
} 
+0

Благодарим вас за ответ. Оно работает! – LINGS

2

При запуске внешней программы из Java выход не идет (и вход не приходит с) терминалом приложения Java- ,

Входные и выходные потоки (STDIN, STDOUT, STDERR) во внешнюю программу (сценарий) направлены на (от) InputStreams и OutputStreams, которые доступны из Java Process, который создается, когда вы делаете exec(...)

+0

Большое вам спасибо! Ваша первая строка ответа объяснила все это. – LINGS

Смежные вопросы