如何通过java程序在远程系统上运行SSH命令(后续)
问题描述:
我想通过Java程序在远程主机上运行命令/可执行文件。这是我从相关线程获得的代码。我可以连接到远程主机并通过BufferedReader在中读取流。但是,我不能使用out.println(“ls/home/ubuntu”)发送/执行命令;。你有什么建议?我正在研究MAC OS系统。如何通过java程序在远程系统上运行SSH命令(后续)
Process p = Runtime.exec("ssh myhost");
PrintStream out = new PrintStream(p.getOutputStream());
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream());
Thread.sleep(3000);
while (in.ready()) {
String s = in.readLine();
System.out.println(s);
}
out.println("ls /home/ubuntu");
Thread.sleep(3000);
while (in.ready()) {
String s = in.readLine();
System.out.println(s);
}
out.println("exit");
答
得到它的工作。
PrintStream out = new PrintStream(p.getOutputStream());
对我不起作用,所以我将其更改为此。
PrintWriter out = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(p.getOutputStream())), true);
谢谢,我也会检查出来。 – allnighter 2013-03-01 15:05:01