【发布时间】:2012-09-07 22:38:20
【问题描述】:
我对 java 还很陌生,现在我想使用 java 通过 windows 命令运行 SSH。
这是我创建的代码,
Process pr1 = Runtime.getRuntime().exec("cmd /k" + "ssh root@host" + "&&" + "passwd" );
Process pr = Runtime.getRuntime().exec("ls");
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null)
System.out.println(line);
我总是得到错误:
java.io.IOException:无法运行程序“ls”:CreateProcess 错误=2, 系统找不到指定的文件
有人可以帮我吗?
【问题讨论】:
-
您似乎正试图在 Windows 机器上执行
ls...如果这是您所期望的,它不会在远程机器上执行。 -
相反,您应该找到一种方法将
ls\n写入 sshProcess的OutputStream,但我不确定具体如何执行此操作。免费提示答案。不过,您最好为 Java 找到一个 SSH 库。 -
见this question。这可能是比手动执行更好的方法。