从Java执行Unix脚本

从Java执行Unix脚本,java,bash,unix,Java,Bash,Unix,我正在尝试从java运行unix shell脚本,该脚本可在unix服务器的特定目录中使用。此脚本接受参数。我能够建立SFTP连接,并成功地到达保存shell脚本的目录。如何运行此脚本以及如何传递参数?在一家公司没有多少推荐人 但这里的脚本可以在本地系统中使用。在我的例子中,脚本位于服务器上,也接受参数。SFTP是一种文件传输协议(安全文件传输协议)。它允许您在服务器之间传输文件。但是,它不允许您在远程服务器上执行任何脚本,因为这不是它的设计目的 如果要在远程服务器中执行脚本,则需要: 建立s

我正在尝试从java运行unix shell脚本,该脚本可在unix服务器的特定目录中使用。此脚本接受参数。我能够建立SFTP连接,并成功地到达保存shell脚本的目录。如何运行此脚本以及如何传递参数?在一家公司没有多少推荐人
但这里的脚本可以在本地系统中使用。在我的例子中,脚本位于服务器上,也接受参数。

SFTP
是一种文件传输协议(
安全文件传输协议
)。它允许您在服务器之间传输文件。但是,它不允许您在远程服务器上执行任何脚本,因为这不是它的设计目的

如果要在远程服务器中执行脚本,则需要:

  • 建立
    ssh
    连接
  • 从该连接执行脚本

例如,您需要使用类似于
JSch
的库。

SFTP
是一种文件传输协议(
Secure file transfer protocol
)。它允许您在服务器之间传输文件。但是,它不允许您在远程服务器上执行任何脚本,因为这不是它的设计目的

如果要在远程服务器中执行脚本,则需要:

  • 建立
    ssh
    连接
  • 从该连接执行脚本

例如,您需要使用类似于
JSch
的库。

您的Java函数基于
运行时
对象。我不确定,但我认为您无法获取远程机器的
运行时
对象,因此您需要将类文件放在该远程机器上并在那里启动它。

您的Java函数基于
运行时
对象。我不确定,但我认为您无法获取远程计算机的
运行时
对象,因此您需要将类文件放在该远程计算机上并启动它。

另一种方法是通过SSH执行命令。 您可以在本地主机(我的示例是
test.sh
)中创建一个新脚本,内容如下,现在您可以按照从引用中获得的方式执行它

sshuser@server“在server.sh中使用shell脚本”

阅读更多

Java源代码:

    String[] cmd = new String[] { "/bin/sh", "test.sh" };
    try {
        Process pr = Runtime.getRuntime().exec(cmd);
        int rs = pr.waitFor();
    } catch (IOException | InterruptedException e) {
        e.printStackTrace();
    }

另一种方法是通过SSH执行命令。 您可以在本地主机(我的示例是
test.sh
)中创建一个新脚本,内容如下,现在您可以按照从引用中获得的方式执行它

sshuser@server“在server.sh中使用shell脚本”

阅读更多

Java源代码:

    String[] cmd = new String[] { "/bin/sh", "test.sh" };
    try {
        Process pr = Runtime.getRuntime().exec(cmd);
        int rs = pr.waitFor();
    } catch (IOException | InterruptedException e) {
        e.printStackTrace();
    }

java应用程序如何建立这种连接?您使用的是什么库?用于通过SSH连接到服务器,并获取一个shell以在服务器上执行命令。请参见此处,了解一个:。您的java应用程序如何建立该连接?您使用的是什么库?用于通过SSH连接到服务器,并获取一个shell以在服务器上执行命令。请参阅此处以获取:。