Java 远程互动

Java remote interactions

我在实习,我的任务是在Java中构建一个部署程序。我的方法基于具有动态实例化的 "tasks to do for a deployment" 模型(但这不是重点)。每个任务都在本地或远程服务器(有时两者)上做一些事情。例如,我有一个 Copy 任务,它将本地文件复制到远程服务器。获得了类似这样的基本交互任务(移动、删除...)。

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

所以这是我的问题:

我应该使用什么 Java API 来完成工作?

是否可以使用 Telnet 或 FTP?

没有 ssh 有可能吗?

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

感谢您的回答。

有几个选项可以与远程 Windows 服务器进行交互。如果您的本地 Java 应用程序在 Windows 上 运行ning(也就是说,您的源服务器和目标服务器都在 运行ning Windows),您可以生成一个新进程并执行 PowerShell 命令 - 请参阅 this link 示例。

有多种方法可以使用 PowerShell copy and delete 远程服务器上的文件。由于您没有完全说明您的要求,我不知道这是否涵盖了您的所有用例。

如果您的应用程序在 Windows 上没有 运行,您将不得不求助于纯粹的 Java 解决方案,例如 j-Interop to connect to the remote system using DCOM / WMI. See this page,以便很好地介绍 WMI 和j-互操作。不过警告的话 - 让 DCOM 工作需要一些配置更改,特别是在 Windows(Windows 7 及更高版本)的现代版本上更改注册表项的权限。