livestreamer
не находится в пути вашего Java-процесса.
В каждой среде выполнения операционной системы Windows и Unix есть концепция пути программы.Путь является переменной среды (с именем PATH
во всех операционных системах, кроме Windows, которая использует Path
).Он содержит список каталогов, разделенных двоеточиями :
, за исключением Windows, где они разделены точками с запятой (;
).
Как и для любой переменной среды, каждый запущенный процесс может иметь свой собственный путьопределены, и дочерние процессы обычно наследуют его от своего родительского процесса.
Всякий раз, когда вы пытаетесь запустить программу без каких-либо разделителей каталогов (например, пытаясь запустить ls
вместо /bin/ls
), система будетищите эту программу в каждом каталоге в пути.
В вашем терминале ваш PATH содержит каталог, в котором есть livestream
.Когда вы запускаете Java-процесс, у вас есть другой PATH, в который не входит каталог, содержащий livestream
.
Самое простое решение - обратиться к livestream
по его абсолютному имени файла, таким образом делаясистемный путь выполнения не имеет значения:
String[] cmd = { "/usr/bin/livestreamer", "twitch.tv/" + channel, quality };
/usr/bin/livestreamer
является лишь примером.Я не знаю, где на самом деле был установлен livestreamer в вашей системе.
Чтобы найти его, выполните which livestreamer
в своем терминале.Это должно сказать вам абсолютное местоположение этого.(Я думаю, что в Windows команда будет where livestreamer
.)