Java 在Linux上从Windows计算机远程运行进程

Java 在Linux上从Windows计算机远程运行进程,java,linux,remoting,Java,Linux,Remoting,我希望能够从Windows机器上运行的JAVA应用程序远程运行Linux机器上存在的进程。最好的方法是什么?或者一个可能对我有帮助的在线资源?非常感谢。简而言之,使用ssh客户端 选项1:在中安装openssh包 选择2:使用 在这两种情况下,您都可以设置密钥对以允许自动(非密码)身份验证。您可以使用许多Java SSH客户端库中的任何一个,例如,只要Linux机器运行sshd(并且防火墙都设置为允许SSH通信通过),很可能就是这种情况。配置ssh身份验证有很多可能的方法,基本上可以归结为在网上

我希望能够从Windows机器上运行的JAVA应用程序远程运行Linux机器上存在的进程。最好的方法是什么?或者一个可能对我有帮助的在线资源?非常感谢。

简而言之,使用ssh客户端

选项1:在中安装openssh包

选择2:使用


在这两种情况下,您都可以设置密钥对以允许自动(非密码)身份验证。

您可以使用许多Java SSH客户端库中的任何一个,例如,只要Linux机器运行sshd(并且防火墙都设置为允许SSH通信通过),很可能就是这种情况。配置ssh身份验证有很多可能的方法,基本上可以归结为在网上发送密码(安全)或使用公钥/私钥对(RSA或DSA)——后者通常更可取,但您需要与系统和网络管理员核实此问题。。。这实际上不是一个软件开发问题,而是一个与系统管理和安全性相关的问题

  • 在Linux机器上将该进程公开为[fire and forget]web服务
  • 从windows计算机上调用它

  • 您还可以创建一种客户机/服务器体系结构。Java客户端将向Java服务器(~webservice)发送一个命令,该服务器将执行所需的进程。 但很明显,这取决于你的目标。 你需要用一种安全的方式吗? 是通过互联网还是在本地网络中?
    最后,该进程是Java进程吗?

    您可以使用ssh命令登录到系统中 例如

         String[] cm = {
                       "ssh",
                       "username@hostIP" ,
                       "your command"
    
                       };
    
         try
          {
           Process q=  Runtime.getRuntime().exec(cm);
           q.waitFor();
          }
        catch(Exception e) {}