我希望能够从运行在Windows机器上的Java应用程序远程运行Linux机器上存在的进程。如何做到这一点是最好的方式?或者有什么在线资源可以帮助我吗?非常感谢。
只要Linux机器运行着sshd(并且防火墙都设置好了以允许ssh流量通过),您就可以使用众多Java SSH客户端库之一,例如javassh。有许多可能的ssh身份验证配置方式,基本上可以归结为在网络上安全地发送密码或使用公钥/私钥对(RSA或DSA)-后者通常更可取,但您需要与系统和网络管理员确认此问题...这不是一个软件开发问题,而是与系统管理和安全性有关。
您可以使用ssh命令登录到系统,例如:
String[] cm = {
"ssh",
"username@hostIP" ,
"your command"
};
try
{
Process q= Runtime.getRuntime().exec(cm);
q.waitFor();
}
catch(Exception e) {}
您还可以创建一种客户端/服务器架构。您的Java客户端将向您的Java服务器(~ Web服务)发送命令,该服务器将执行所需的进程。 但显然,这取决于您的目标。 您需要以安全的方式完成吗? 是通过互联网还是在本地网络内进行? 最后,该进程是否为Java进程?