Выполнение команды telnet в удаленном сеансе SSH с использованием JSch

Я работаю на бегtelnet команда на сессию оболочки SSH, для ее получения я использовал следующий официальный JSchпример.

Я также написал свой собственный кодэтот пример наПереполнение стека

этомой код:

package Utility;

import com.jcraft.jsch.Channel;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;


public class JavaTelnet {

    public static void main(String[] arg) {
        try {
            System.out.println(telnetConnection(USER_ID,PASSWORD,REMOTE_HOST));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String telnetConnection(String user, String password, String host) throws JSchException, Exception {
      JSch jsch=new JSch();
      Session session=jsch.getSession(user, host, 22);
      session.setPassword(password);
      // It must not be recommended, but if you want to skip host-key check,
       session.setConfig("StrictHostKeyChecking", "no");

      session.connect();
      //session.connect(30000);   // making a connection with timeout.

      Channel channel=session.openChannel("shell");

      channel.connect();

      DataInputStream dataIn = new DataInputStream(channel.getInputStream());
      BufferedReader reader = new BufferedReader(new InputStreamReader(dataIn));
      DataOutputStream dataOut = new DataOutputStream(channel.getOutputStream());

      dataOut.writeBytes("telnet localhost 4242\r\n");
/*
* telnet COMMANDS here
*/
      dataOut.writeBytes("exit\r\n");
       dataOut.writeBytes("logout\r\n");
       dataOut.flush();

      String line = reader.readLine();
      String result = line +"\n";

      while ((line= reader.readLine())!=null){
          result += line +"\n";

      }

      dataIn.close();
      dataOut.close();
      System.out.println("disconnecting....");
      channel.disconnect();
      session.disconnect();

      return "done";   

  }

}

Это выглядит хорошо, но странно, чтоработает только в режиме отладки, Если я запускаю его, программа не достигает его конца. Я думаю, что это блокировкав то время как цикл но я не понимаю почему. Без цикла while код достигает своего конца, но не выполняет команду оболочки.

Я использую Netbeans в сторону

Можете ли вы помочь мне найти проблему ?!

Ответы на вопрос(1)

Ваш ответ на вопрос