从 Windows 机器运行 shell 命令的 Java 程序

标签 java shell runtime.exec

我正在尝试运行 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/

相关文章:

java - 尝试使用 GUI 运行 Java 实用程序时出现 X11 Frwarding 错误

node.js - 通过 java 与终端运行进程之间有区别吗?

Java运行时执行: Get information from Firefox

java - JPA + Datanucleus + 连接池 : connections are opened/closed with each statement

Java:是否有一种数据结构可以像多重映射一样工作,但接受重复的键?

python - 读取-未知选项

regex - Bash 案例条件

java - 从 Java 运行 exec 命令是否需要 "bash"?

java - 如何在java中使用运行时类执行多个窗口命令

java - Chrome 浏览器和 Java 消息传递