我正在编写一个应用程序,通过SSH连接到服务器,打开一个应用程序(它在shell上运行)并使用它。我正在使用JSch,我已经设法连接,打开应用程序并向其发送命令。现在我面临两个问题:
我正在运行的应用程序,使用ESC键,我不能在我写的应用程序中使用它。它只是在输出上写^[
以下是我用来执行此应用程序的代码:
JSch shell = new JSch();
Session session = shell.getSession("myUser", "myHost");
session.setPassword("myPassword");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
Channel channel = session.openChannel("shell");
channel.setOutputStream(System.out);
PipedInputStream in = new PipedInputStream();
PipedOutputStream out = new PipedOutputStream(in);
channel.setInputStream(in);
channel.connect();
out.write("my_application\n".getBytes());
Thread.sleep(1000); //waiting for the app to load
out.write("\n".getBytes());
out.write("appUser\n".getBytes());
out.write("appPassword\n".getBytes());
channel.setInputStream(System.in);
PS:服务器使用sh而不是bash。