powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по потокам Runtime
3 сообщений из 3, страница 1 из 1
вопрос по потокам Runtime
    #33426840
Igor-65
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, нужна помощь ...

Задача:
открыть сессию (например ssh)
послать туда команду (например ls -l)
получить ответ
послать еще команду (например, ps -ef| grep ...)
получить ответ
........
закрыть сессию.

пока проблема в самом начале : не могу получить ответ от старта сессии
клиент - win_xp
(для ssh ключи настроены)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
     public   static   void  test_Ssh() {

        String cmd = "ssh2 user@server";
        StringBuffer strb =  new  StringBuffer( 1024 );
         int  ch;

        Process process =  null ;
         try  {
            Runtime runtime = Runtime.getRuntime();

            process = runtime.exec(cmd);
            OutputStream os = process.getOutputStream();
            InputStream is = process.getInputStream();
            InputStreamReader isr =   new  InputStreamReader(is,"IBM866");

// вот тут крутимся до бесконечности :(
             while  (is.available()== 0 ) {
                Thread.currentThread().sleep( 100 );
            }
// сюда не доходим.

             while  ((ch = isr.read()) != - 1 ) {  
                System.out.print(( char )ch);
                strb.append(( char )ch);
                //Thread.currentThread().sleep();
            }
            System.out.println(strb.toString());

            ..........
            //далее код поскипан

            process.destroy();

        }  catch  (IOException e) {
            e.printStackTrace();  
        }  catch  (InterruptedException e) {
            e.printStackTrace();  
        }
    }

Если я стартую команду
String cmd = "cmd.exe ssh2 user@server";
то я вижу ответ
Код: plaintext
1.
2.
3.
4.
Microsoft Windows XP [Версия  5 . 1 . 2600 ]
(С) Корпорация Майкрософт,  1985 - 2001 .

C:\zzWork\IdeaProjects\test1>
но следов старта ssh я не вижу.

если я даю команду напрямую
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
C:\zzWork\Projects\arhive\2005_12_08>ssh2 user@server
Authentication successful.
Last login: Thu Dec   8   12 : 56 : 41   2005  from  192 . 168 . 112 . 102 
Sun Microsystems Inc.   SunOS  5 . 8        Generic Patch   October  2001 
Sun Microsystems Inc.   SunOS  5 . 8        Generic Patch   October  2001 
You have  new  mail.
$

Где я прокалываюсь ??
Ткните меня, пожалуйста в какойнибудь пример.

да, еще. С запуском типа "cmd.exe /c ssh2 user@server ls -l" проблем нет. ответ получаю. Но хочется все в одной сессии проделать.

заранее спасибо
...
Рейтинг: 0 / 0
вопрос по потокам Runtime
    #33426850
Igor-65
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot я]
если я даю команду напрямую
[quot я]
хотел сказать "в командной строке winxp"
...
Рейтинг: 0 / 0
вопрос по потокам Runtime
    #33427188
Igor-65
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
похоже, так никто не делает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / вопрос по потокам Runtime
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]