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