我的目标是通过ssh shell执行远程命令。所以我曾经jsch
建立连接并尝试过
Channel channel=session.openChannel("exec");
但它没有执行一些命令,例如dir
.
所以我尝试使用 shell 但无法将值传递给System.in
,因为我只需要通过 GUI 发出命令
Channel channel=session.openChannel("shell");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
在上面的代码中,我需要通过 GUI 中的字符串而不是 System.in 传递值。
所以我尝试了类似的东西
String cmd="help";
InputStream is = new ByteArrayInputStream(cmd.getBytes());
System.setIn(is);
channel.setInputStream(System.in);
但即使那样我也无法获得输出。