我正在尝试运行 Java 程序以在远程 (Linux) 计算机上执行命令。我可以运行 putty.exe,然后使用 SSH key 连接到计算机。但我无法运行实际命令,例如“bash”“ps-ef”或“ls -la”。目前使用 Java runtime.exec,不确定使用 java.lang.ProcessBuilder 是否有帮助?我究竟做错了什么 ?任何帮助/指导将不胜感激..提前致谢
package hello;
import java.io.*;
public class RuntimeExample {
public static void main(String args[]) throws IOException {
try{
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(new String[]{"C:\\Users\\yky90455\\Desktop\\putty.exe","abc@login.testserver.helloworld.co.uk","bash", "ps -ef"});
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
System.out.printf("Output of running the command is:");
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
最佳答案
尝试 Jsch From here获取从 Java 到远程 Linux 机器执行的 shell 脚本。我已经研究过这个问题,这真的很有趣。尽管您可能会发现很少有文档可以帮助您理解这一点,但您可以轻松克服这一点。
关于从 Windows 机器运行 shell 命令的 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25929579/