1

我正在尝试通过 Java 程序在远程主机中运行命令/可执行文件。这是我从相关线程中获得的代码。我可以连接到远程主机并通过BufferedReader读取流。但是,我无法使用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");
4

2 回答 2

5

让它工作。

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

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

PrintWriter out = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(p.getOutputStream())), true);
于 2013-03-01T15:01:14.190 回答
2

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

于 2013-03-01T08:29:37.137 回答