【问题标题】:How to read input from Shell Session using JSch in Java?如何在 Java 中使用 JSch 从 Shell Session 读取输入?
【发布时间】:2014-08-07 09:57:20
【问题描述】:

我正在尝试开发一个 Shell Emulator 并使用 Jsch。我正在尝试打开一个 shell 会话,但我无法从 shell 会话中读取输入流。我正在使用以下代码。

        JSch jsch = new JSch();

        Session session;

        session = jsch.getSession(username, server, port);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");

        session.connect(30000);

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

        OutputStream out = channel.getOutputStream();
        InputStream in = channel.getInputStream();


        int SIZE = 1024;
        byte[] buf=new byte[SIZE];
        while(true)
        {
            buflen=in.read(buf, bufs, buf.length-bufs);
            if(buflen<=0){
                buflen=0;
                throw new IOException("fillBuf");
            }
            System.out.println(buflen);
        }

但是没有输出。我做错了什么?

【问题讨论】:

    标签: java shell jsch


    【解决方案1】:

    你需要做一个:

    channel.connect(<timeout>)
    

    在从输入流中读取之前。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-21
      • 2016-06-05
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2015-07-06
      • 2014-09-10
      • 1970-01-01
      相关资源
      最近更新 更多