我实习,我的任务是用Java构建部署程序。我的方法是基于部署的"任务和#34;具有动态实例的模型(但这不是重点)。每个任务都在本地或远程服务器上执行某些操作(有时两者都有)。例如,我有一个Copy
任务,它将本地文件复制到远程服务器。为基本交互(移动,删除,...)做了一些这样的任务。
关键是,每个部署模块都是具有不同参数(OS,连接参数,...)和基本程序的服务器。其中一个是Linux服务器,所以我想我可以使用SSH(JSCh)来完成这项工作。但另一个是Windows机器,没有任何SSH。我在世界各地搜索了几天,找到了可以使用的东西,没有结果。
所以这是我的问题:
我应该使用什么Java API来完成工作?
是否可以使用Telnet或FTP?
没有ssh可以吗?
小细节:我对远程服务器没有任何控制权,我无法安装新的协议或程序,也没有启动RMI server
。
感谢您的回答。
答案 0 :(得分:0)
有一些选项可以与远程Windows服务器进行交互。如果您的本地Java应用程序在Windows上运行(即源服务器和目标服务器都在运行Windows),则可以生成新进程并执行PowerShell命令 - 有关示例,请参阅this link。
使用PowerShell的远程服务器上有copy和delete个文件的方法。由于您没有完全说明您的要求,因此我不知道这是否涵盖了您的所有用例。
如果您的应用程序无法在Windows上运行,那么您将不得不求助于使用j-Interop之类的纯Java解决方案来使用DCOM / WMI连接到远程系统。有关WMI和j-Interop的详细介绍,请参阅this page。但是警告的话 - 让DCOM工作需要在现代版本的Windows(Windows 7及更高版本)上进行一些配置更改,特别是更改注册表项的权限。