【问题标题】:Find remote os name via Jsch in Java在 Java 中通过 Jsch 查找远程操作系统名称
【发布时间】:2014-06-24 06:36:20
【问题描述】:

我在我的 Java 代码中使用Jsch 连接到远程机器。我想在远程机器上执行一个命令。在 Windows 上,我需要在要执行的命令之前附加 "cmd /c",但对于 linux,这不是必需的。所以我想知道我通过 Jsch 连接了哪个操作系统。我想到的一种方法是运行一些简单的 windows 特定命令,如果它有效,它就是 windows。如果不是,那就是其他一些操作系统。然后我将运行我的实际命令。有没有办法避免这种情况?通过 Jsch 通过 SSH 独立执行命令 OS 的其他方式?

【问题讨论】:

  • 我会尝试运行/bin/uname。显然,在可能无法工作的远程 Windows 机器上。在本地,您可以使用System.getProperty("os.name")

标签: java ssh jsch remote-connection


【解决方案1】:

没有纯粹的科学方法可以做到这一点。但是,您可以找到很多启发式方法。曾几何时,我们使用命令pwd 作为第一个命令并解析其输出。它在 Unix 系统上打印一些合理的东西,在 Windows 上打印错误消息。

不过现在我可以建议你使用以下命令:

echo $PATH %PATH%

这适用于所有操作系统。然后你可以分析它打印的路径。例如斜线/\ 的方向可以告诉你这是什么操作系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2017-03-08
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2011-01-27
    • 2012-06-04
    相关资源
    最近更新 更多