Java远程交互

Java远程交互,java,operating-system,remote-server,interaction,Java,Operating System,Remote Server,Interaction,我正在实习,我的任务是用Java构建一个部署程序。我的方法是基于“部署任务”模型和动态实例(但这不是重点)。每个任务都在本地或远程服务器上执行某些操作(有时两者都执行)。例如,我有一个Copy任务,它将本地文件复制到远程服务器。获得了一些基本交互任务(移动、删除等) 关键是,每个部署模块都是一个具有不同参数(操作系统、连接参数等)和基本程序的服务器。其中一个是Linux服务器,所以我想我可以使用SSH(with)来完成这项工作。但另一个是Windows机器,没有任何SSH。我到处找了几天,想找到

我正在实习,我的任务是用Java构建一个部署程序。我的方法是基于“部署任务”模型和动态实例(但这不是重点)。每个任务都在本地或远程服务器上执行某些操作(有时两者都执行)。例如,我有一个
Copy
任务,它将本地文件复制到远程服务器。获得了一些基本交互任务(移动、删除等)

关键是,每个部署模块都是一个具有不同参数(操作系统、连接参数等)和基本程序的服务器。其中一个是Linux服务器,所以我想我可以使用SSH(with)来完成这项工作。但另一个是Windows机器,没有任何SSH。我到处找了几天,想找到什么可以用,但没有结果

所以我的问题是:

我应该使用什么JavaAPI来完成这项工作

可以使用Telnet或FTP吗

如果没有ssh,这可能吗

小细节:我无法控制远程服务器,无法安装新协议或程序,也无法在其上启动
RMI服务器


感谢您的回答。

有几个选项可以与远程Windows服务器交互。如果本地Java应用程序在Windows上运行(即,源服务器和目标服务器都在运行Windows),则可以生成新进程并执行PowerShell命令—有关示例,请参阅

有多种方法可以使用PowerShell访问远程服务器上的数据和文件。由于您没有完全指定您的需求,我不知道这是否涵盖了您的所有用例


如果应用程序不在Windows上运行,则必须求助于纯Java解决方案,如使用DCOM/WMI连接到远程系统。有关WMI和j-Interop的详细介绍,请参阅。警告—要使DCOM正常工作,需要进行一些配置更改,特别是在现代版本的Windows(Windows 7及更高版本)上更改注册表项的权限。

我有时也会遇到同样的问题,但如果无法在Windows远程系统上安装软件,则必须为不同的计算机编写不同的方法,对于窗户,例如窗户通道;-)我忘了说:我对任务使用动态实例化,它允许我根据服务器的操作系统指定行为。所以“windows的windows方式”和“linux的linux方式”不是问题。问题是:我没有办法使用windows ^^^我会看看j-Interop,谢谢!不幸的是,对于powershell解决方案,它不可能是本地的,但我必须在远程服务器上启动命令。我会尽力请求他们也安装OpenSSH,我的观点是,只要本地和远程服务器都在Windows上运行,Powershell就可以执行远程命令。