如何使用Java中的JSch从Shell Session读取输入?

时间:2014-08-07 09:57:21

标签: java shell jsch

我正在尝试开发一个Shell仿真器并使用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);
        }

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

1 个答案:

答案 0 :(得分:0)

你需要做一个:

channel.connect(<timeout>)

在从输入流中读取之前。