Я использую Jsch для подключения к удаленному компьютеру в своем Java-коде. Я хочу выполнить команду на удаленной машине. В Windows мне нужно добавить "cmd /c"
перед выполнением команды, но для Linux это не нужно. Поэтому я хочу знать, к какой ОС я подключился через Jsch. Один из способов, который приходит мне на ум, - это запустить какую-нибудь простую команду для Windows, если она работает, это окна. Если это не так, это какая-то другая ОС. И тогда я выполню свою настоящую команду. Есть ли способ избежать этого? Какой-то другой способ выполнять команды ОС независимо через SSH через Jsch?
Найти имя удаленной ОС через Jsch в Java
Ответы (1)
Нет чисто научного способа сделать это. Однако вы можете найти много эвристик. Когда-то мы использовали команду pwd
в качестве первой команды и анализировали ее вывод. Он печатает что-то разумное в системах Unix и сообщение об ошибке в Windows.
Однако теперь я могу предложить вам использовать следующую команду:
echo $PATH %PATH%
Это будет работать на всех операционных системах. Затем вы можете проанализировать путь, который он печатает. Например, направление косой черты /
или \
может сказать вам, что это за ОС.
person
AlexR
schedule
24.06.2014
/bin/uname
. Очевидно, что на удаленной машине с Windows это, вероятно, не сработает. Локально можно использоватьSystem.getProperty("os.name")
- person Elliott Frisch   schedule 24.06.2014