我是java的新手,我需要帮助。 我使用jsch库创建到远程linux机器的SHH连接。在下一个代码中,从JSCH创建者的教程中给出,您可以看到它实现了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);
先谢谢你
答案 0 :(得分:1)
而不是System.in,您可以提供所需的流。例如
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.
这是一种选择可能有更好的方法。