Я искал совет о том, как выполнить процесс, который является несколько кроссплатформенным.
Я написал реализации моего приложения на Java и Ruby, но это не столько проблема для конкретного языка, сколько платформа.специфическая проблема.
EG в Ubuntu / usr / bin / ищет все, что я делаю
# Ruby
`HandBrakeCLI #{args}` # works on Ubuntu and likely other linux distros since HandBrakeCLI is in /usr/bin/
Для окон он будет искать текущий каталог, в котором я работаю. Однако, если скопироватьИсполняемый файл Windows с текущим каталогом ошибка компоновки во время выполнения приведет к его аварийному завершению (DLL отсутствует)
Путь установки по умолчанию для HandBrakeCLI находится в «Program Files (x86) / HandBrake» (x86, очевидно, только в 64-битной версии)), однако Program Files не находится в пути поиска, насколько я могу судить.
Для MacOSX я понятия не имею, как выполнять «Папки приложений» Mac из командной строки, кроме как с помощью команды «open»команда.Но это не проблема, так как то, что я действительно ищу, это HandBrakeCLI, который является просто обычным исполняемым файлом.Однако HandBrakeCLI не устанавливается в / usr / bin или / usr / local / bin (или любые другие варианты)
Моя лучшая идея - создать файл конфигурации, который имеет путь к HandBrakeCLI.Однако, если я пойду по этому пути, было бы идеально определить, на какой платформе я работаю, но это еще одна проблема.Один я сделал только с разделами C #ifdef, а не с Ruby или Java.
Буду признателен за любой ввод.