【问题标题】:Java remote interactionsJava 远程交互
【发布时间】:2015-05-13 09:52:46
【问题描述】:

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

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

所以这是我的问题:

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

是否可以使用 Telnet 或 FTP?

没有 ssh 有可能吗?

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

感谢您的回答。

【问题讨论】:

  • 我有时也遇到同样的问题,但是如果你不能在 windows 远程系统上安装一个软件,你必须为不同的机器编写不同的方法,对于 Windows,例如窗户的方式;-)
  • 我忘了说:我对我的任务使用动态实例化,它允许我根据服务器的操作系统指定行为。所以“windows way for windows”和“linux way for linux”不是问题。问题是:我没有办法使用 Windows ^^

标签: java operating-system remote-server interaction


【解决方案1】:

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

有多种方法可以使用 PowerShell 在远程服务器上处理 copydelete 文件。由于您没有完全指定您的要求,我不知道这是否涵盖了您的所有用例。

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

【讨论】:

  • 我会看看 j-Interop,谢谢!对于 powershell 解决方案,不幸的是,它不可能是本地应用程序,但我必须在远程服务器上启动命令。我会尝试请求他们也安装 OpenSSH。
  • 我的意思是,只要本地和远程服务器都在 Windows 上运行,power shell 就可以执行远程命令。
猜你喜欢
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-26
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
相关资源
最近更新 更多