Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Имитирование конца ввода


Автор: Alexandr87 25.11.2005, 04:44
Код

...
Process p=Runtime.getRuntime().exec("cmd");
inp=p.getOutputStream();
...
inp.write((com.getText()+"\r\n").getBytes());
...


Как сделать чтоб данные передались в вызываемую программу, в данном случае нужно достигнуть того, чтобы выполнилась какая-нибудь команда.

Автор: batigoal 25.11.2005, 09:19
Тебе нужно передавать данные уже после запуска процесса?

Если нет, то запускать cmd не обязательно. Можно написать сразу:
Код

Runtime.getRuntime().exec("ping 172.0.0.1");

Автор: Alexandr87 25.11.2005, 17:54
Нет смысл в реалтаймовом общении пользователя с программой, посредством программы, написанной на Java

Автор: Dancer 25.11.2005, 18:37
Lamer George, тогда уж лучше 127.0.0.1 smile

Автор: Alexandr87 25.11.2005, 18:51
Блин, дык какой символ писать, или нафиг этот поток вообще нужен.

Автор: batigoal 25.11.2005, 22:48
Вот кусок из доки:

Цитата
The created subprocess does not have its own terminal or console. All its standard io (i.e. stdin, stdout, stderr) operations will be redirected to the parent process through three streams (Process.getOutputStream(), Process.getInputStream(), Process.getErrorStream()). The parent process uses these streams to feed input to and get output from the subprocess.


Ты используешь
Код

inp=p.getOutputStream();

Здесь случайно не должно быть
Код

inp=p.getInputStream();

?

Dancer
А вот сейчас как забаню за крити флуд smile

Автор: Alexandr87 26.11.2005, 08:34
Нет, всё правильно, это sun просто как-то запутанно методы назвал.Как бы для нас он Output, а для программы Input. На мой взгляд лучше было бы назвать наоборот.

Автор: Alexandr87 2.12.2005, 04:20
Усё нашел выхода надо было вызвать метода OutputStream.flush()

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)