如何通过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"); 

我用了一个图书馆JSch,但我猜sshxcute看起来更好,因为我通过文件去了。

+0

谢谢,我也会检查出来。 – allnighter 2013-03-01 15:05:01

得到它的工作。

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

对我不起作用,所以我将其更改为此。

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