Shell 将JSch的setInputStream和setOutputStream连接到jTextField';s

Shell 将JSch的setInputStream和setOutputStream连接到jTextField';s,shell,connection,jsch,Shell,Connection,Jsch,我是java新手,需要帮助。 我使用jsch库创建到远程linux机器的SHH连接。在下一段代码中,从JSCHCreator的教程中可以看到,它是通过shell通信实现的,它是来自cmd窗口的直接通信。在cmd窗口中输入命令,然后在cmd窗口中返回结果 String user = "username"; String host = "hostname"; session session=jsch.getSession(user, host, 22); String passwd = JOpti

我是java新手,需要帮助。 我使用jsch库创建到远程linux机器的SHH连接。在下一段代码中,从JSCHCreator的教程中可以看到,它是通过shell通信实现的,它是来自cmd窗口的直接通信。在cmd窗口中输入命令,然后在cmd窗口中返回结果

String user = "username";
String host = "hostname";

session session=jsch.getSession(user, host, 22);
String passwd = JOptionPane.showInputDialog("Enter password");
session.setPassword(passwd);
Channel channel=session.openChannel("shell");
session.connect();
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
如何将接下来的两条线路连接到jTextField1和jTextField2。举个例子,我想从jTextField1中获取命令,并从jTextField2中获取结果

channel.setInputStream(System.in);
channel.setOutputStream(System.out);

感谢您使用advanced(高级)

而不是System(系统)。在中,您可以提供所需的流。例如

String ls = "ls \n"; // here i am passing a string to stream, you  can pass as you desire
InputStream in = new ByteArrayInputStream(ls.getBytes("UTF-8"));
channel2.setInputStream(in);//you passed the string as input 


ByteArrayOutputStream out = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(out);
channel2.setOutputStream(ps);
String result = out.toString();//here we get output to a string which you can add to your file.
这是一种选择,可能有更好的方法