Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从不同服务器执行shell文件的Java应用程序_Java_Shell_Execute - Fatal编程技术网

用于从不同服务器执行shell文件的Java应用程序

用于从不同服务器执行shell文件的Java应用程序,java,shell,execute,Java,Shell,Execute,我想知道是否可以做到以下几点: 我必须创建一个Java应用程序,从不同的服务器运行.sh文件,我有我的类来执行shell,运行时和进程,它从我的计算机运行.sh文件,现在的问题是,我想知道是否 process = runtime.exec("/home/user/Documents/example.sh"); 可以是: process = runtime.exec("180.150.2.***/server/user/Documents/serverExample.sh");

我想知道是否可以做到以下几点:

我必须创建一个Java应用程序,从不同的服务器运行.sh文件,我有我的类来执行shell,运行时和进程,它从我的计算机运行.sh文件,现在的问题是,我想知道是否

    process = runtime.exec("/home/user/Documents/example.sh");
可以是:

    process = runtime.exec("180.150.2.***/server/user/Documents/serverExample.sh");
问题是,要从服务器获取.sh文件,我必须登录,这个应用程序可以是桌面应用程序,也可以是web应用程序,但必须是Java,那么,我该怎么做呢

我感谢你的帮助


Chema.

基本上,我不认为你能做到这一点,你正在尝试的方式。
Runtime.exec(…)
将委托操作系统执行实际执行

有很多种方法可以实现您想要的,无论是纯Java还是通过基于操作系统的附加实用程序

您可以通过SSH或telnet连接到远程机器,并通过这些接口执行命令


您可以编写一个客户机-服务器应用程序,在该应用程序中,服务器将允许您向其发送命令以代表您执行(但您必须了解这是一个巨大的安全风险)。

签出或删除。我使用后者以编程方式执行ssh/scp任务。

问题不清楚。目的是从远程位置获取shell脚本并在本地运行,还是在远程主机上运行远程shell脚本?目的是在远程主机上运行shell脚本!就在钱里面。执行exec会将操作系统访问此类共享资源的工作委托给用户,如果运行java应用程序的用户没有执行它的权限,则不会发生这种情况