如何通过java程序在远程系统上运行SSH命令(跟进)

时间:2013-03-01 06:23:55

标签: java command-line ssh command

我正在尝试通过Java程序在远程主机中运行命令/可执行文件。这是我从相关主题获得的代码。我可以连接到远程主机并通过 BufferedReader in 读取流。但是,我无法使用 out.println(“ls / home / ubuntu”); 发送/执行命令。你有什么建议?我正在研究MAC OS系统。

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");

2 个答案:

答案 0 :(得分:5)

让它发挥作用。

PrintStream out = new PrintStream(p.getOutputStream());

对我不起作用所以我把它改成了这个。

PrintWriter out = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(p.getOutputStream())), true);

答案 1 :(得分:2)

我使用了一个库JSch,但是当我浏览文档时,我想sshxcute看起来更好。