2015-01-13 3 views
0

Я хочу выполнить 2 команды с помощью JSch, но они не должны совпадать. Я делаю это, чтобы соединиться от шлюза к серверу (при этом команде SSH имя_сервера)Выполнение команд после прочтения ответа предыдущей команды в JSch

Первой команде: SSH ServerName Второй команды: пароль

Я попробовал несколько подходов, но они продолжают укладку вместе.

 JSch jsch = new JSch(); 

     gateway = jsch.getSession(username, host, port); 
     gateway.setPassword(password); 
     gateway.setConfig(SessionPool.defaultSessionConfig()); 
     gateway.setHostKeyAlias(host); 
     gateway.connect(20000); 
     System.out.println("Session created"); 
channel = gateway.openChannel("shell"); 
     OutputStream ops = channel.getOutputStream(); 
     PrintStream ps = new PrintStream(ops, true); 

     channel.connect(); 
     ps.println("ssh SERVER_NAME" + ENTER_KEY); 

     ps.println(PASSWORD + ENTER_KEY); 

     ps.close(); 

     InputStream in = channel.getInputStream(); 

     byte[] bt = new byte[1024]; 

     while (true) { 

      while (in.available() > 0) { 
       int i = in.read(bt, 0, 1024); 
       if (i < 0) 
        break; 
       String str = new String(bt, 0, i); 
       // displays the output of the command executed. 
       System.out.print(str); 

      } 
      if (channel.isClosed()) { 

       break; 
      } 

     } 
+0

Вы говорите, что вы пытаетесь запустить две команды, но я вижу только один («SSH SERVER_NAME») в коде, который вы публикуемую. Можете ли вы описать, как программа терпит неудачу? Вы получаете сообщения об ошибках? Вы получаете какие-то исключения? – Kenster

+0

Вторая команда - это пароль для SERVER, с которым я пытаюсь подключиться с помощью SERVER_NAME. Ошибок нет. Команды 2 просто идут вместе, а не одновременно, как я хотел. План состоит в том, что вторая команда выполняет после запроса, что первая команда сгенерирована. Кажется, я не понимаю. –

+0

Нет ошибки? Тогда что происходит, когда вы запускаете свою программу? – Kenster

ответ

0

Ввод Thread.sleep между командами делает трюк =)

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