| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Linux и командная строка |
| Автор: zss 16.2.2006, 09:02 |
| под Linux есть приложение, которое работает через командную строку. Команды и результаты выводятся на консоль. Нужно создать графическое приложение, которое может выдавать команды на консоль и читать с нее результаты. Можно ли это сделать ? Если да, то как ? |
| Автор: Alexandr87 16.2.2006, 11:23 | ||
Можно.
Ps. Не совсем понятно - "на консоль". Этот пример, читает стандартные потоки программы. Скорее всего так и будет работать, если он не использует файл консольного устройства. |
| Автор: LSD 16.2.2006, 14:01 |
| Для начала, прочти FAQ http://vingrad.ru/JAVA-JAV-000121 и http://vingrad.ru/JAVA-JAV-002924. |
| Автор: zss 16.2.2006, 15:06 | ||
| LSD, мне нужно немного не то я в Linux полный валенок если из командной строки, то нужно инициализировать hci тоесть
и в ответ на консоль вываливается список устройств так вот мне надо этот результат получить из графического приложения тоесть перенаправить вывод не на консоль а в свой поток или может еще как |
| Автор: Alexandr87 16.2.2006, 16:41 |
| То, что я предложил пробовал? |
| Автор: LSD 16.2.2006, 17:16 | ||||
Так Alexandr87 тебе предложил: получаешь поток ввода приложения и поток вывода. Чтобы выполнить hci scan пишешь в поток вывода строку hci scan и читаешь затем из потока вывода список устройств. Если не разберешься сам, напиши и я в выходные накидаю примерчик. |
| Автор: zss 16.2.2006, 18:03 |
| спасибо всем - попробую проблемма в том, что я не знаю что такое hci в Linux (поэтому и вопрос) а если он автоматически запускается при старте системы ? LCD - буду очень признателен, если набросаешь |
| Автор: zss 17.2.2006, 09:34 |
| LSD, все равно надеюсь на примерчик а с hci - буду разбираться |
| Автор: zss 19.2.2006, 16:44 |
| я так понимаю что мне достаточно послать команду просто на системную консоль, а не для конкретного процесса Как это можно сделать ? |
| Автор: zss 19.2.2006, 20:31 |
| Alexandr87, кстати ты получаешь InputStream а можно его сразу перенаправить например в JTextArea ? |
| Автор: LSD 19.2.2006, 21:38 | ||
Вот пример графической оболочки командного процессора:
|
| Автор: zss 19.2.2006, 23:12 |
| LSD, большое спасибо |
| Автор: zss 24.2.2006, 21:25 |
| LSD, скажи пожалуйста, а можно выводить InputStreamReader только когда это нужно, а не всегда. З.Ы. И еще как быстро разобрать InputStreamReader, мне нужно получить определенные поля. У меня по команде выводится Scanning ... 00:11:22:33:44:55 n/a ... |
| Автор: LSD 24.2.2006, 23:35 | ||||
Можно, только вопрос когда нужно, а когда нет.
java.util.regex |
| Автор: zss 25.2.2006, 00:39 |
| мне для одной команды надо выводить, а для другой нет. команды вводятся при нажатии кнопки |
| Автор: zss 25.2.2006, 20:18 |
| в общем - почти все получилось только осталось еще одно - как сэмитировать нажатие Ctrl+C в BufferWriter ? |
| Автор: LSD 26.2.2006, 11:04 |
| Просто записать ^C не помогает? |
| Автор: zss 26.2.2006, 12:15 | ||
| не помогает и это тоже не помогает
|
| Автор: Alexandr87 26.2.2006, 16:18 |
| а после всего этого writer.flush() вызвать - не помогает? |
| Автор: LSD 26.2.2006, 20:12 |
| В принципе процесс можно завершить Process.destroy(), но это будет не нормальное завершение, а экстренное как kill. |