使用java.lang.ProcessBuilder在不同主机上运行shell脚本

使用java.lang.ProcessBuilder在不同主机上运行shell脚本,java,processbuilder,Java,Processbuilder,我目前正在使用java.lang.ProcessBuilder在本地计算机上运行shell脚本 现在我想用它在不同的机器上运行shell脚本。我该怎么做 注意:这些都是Linux机器,我特别想使用ProcessBuilder来实现这一点。Java不支持直接在远程主机上运行代码 您在这里几乎没有选择: 创建将使用ssh或telnet在远程主机上运行脚本的脚本 使用一些ssh库 Java不支持直接在远程主机上运行代码 您在这里几乎没有选择: 创建将使用ssh或telnet在远程主机上运行脚本的脚

我目前正在使用
java.lang.ProcessBuilder
在本地计算机上运行shell脚本

现在我想用它在不同的机器上运行shell脚本。我该怎么做


注意:这些都是Linux机器,我特别想使用
ProcessBuilder
来实现这一点。

Java不支持直接在远程主机上运行代码

您在这里几乎没有选择:

  • 创建将使用
    ssh
    telnet
    在远程主机上运行脚本的脚本
  • 使用一些
    ssh

Java不支持直接在远程主机上运行代码

您在这里几乎没有选择:

  • 创建将使用
    ssh
    telnet
    在远程主机上运行脚本的脚本
  • 使用一些
    ssh

Java不支持直接在远程主机上运行代码


您可以编写process builder应用程序并将其部署到目标计算机,该计算机侦听某个端口“X”,您可以从源系统向目标系统的端口“X”发送命令,让process builder应用程序在目标计算机上执行命令。

Java不支持直接在远程主机上运行代码


您可以编写process builder应用程序并将其部署到目标计算机,该计算机侦听源系统的某个端口“X”,您可以将命令发送到目标系统的端口“X”,让process builder应用程序在目标计算机上执行命令。

出于安全原因,Internet上的任意计算机不可能在Internet上的任意其他计算机上运行任意shell脚本。因此,要么你遗漏了很多细节(比如——这些机器如何相互关联以及它们如何知道如何接受来自彼此的shell脚本),要么你的要求是不可能的。使用com.jcraft.jsch.jsch库,你可以连接到不同的远程机器,因为你需要远程机器凭据,并且出于安全原因,Internet上的任意计算机不可能在Internet上的任意其他计算机上运行任意shell脚本。因此,要么您遗漏了很多细节(比如——这些机器如何相互关联以及它们如何知道如何接受来自彼此的shell脚本),要么您所要求的是不可能的。使用com.jcraft.jsch.jsch库,您可以连接到不同的远程机器,您需要远程机器凭据和