2

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

4

1 回答 1

3

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

但是现在我可以建议您使用以下命令:

echo $PATH %PATH%

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

于 2014-06-24T07:05:59.123 回答