我正在尝试开发一个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);
}
但没有输出。我做错了什么?
答案 0 :(得分:0)
你需要做一个:
channel.connect(<timeout>)
在从输入流中读取之前。