Я искал совета о том, как выполнить процесс, который в какой-то мере является кроссплатформенным.
Я написал реализации своего приложения на Java и Ruby, но это не столько проблема языка, сколько проблема платформы.
Например, в Ubuntu / usr / bin / ищется все, что я делаю
# Ruby
`HandBrakeCLI #{args}` # works on Ubuntu and likely other linux distros since HandBrakeCLI is in /usr/bin/
Для Windows он будет искать в текущем каталоге, в котором я работаю. Однако, если скопировать исполняемый файл 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.
Буду признателен за любой вклад.