Я искал способы запуска внешних программ, используя среду выполнения Java.Это прекрасно работает, например:
String[] cmd = {"mkdir", "test"};
Runtime.getRuntime().exec(cmd);
Создает новый каталог, как вы ожидаете.Теперь из окна bash в Mac я могу написать:
love testgame
Чтобы запустить игровой движок 'Love' в папке с именем testgame.Причина, по которой это работает, заключается в том, что я назвал «любовь» псевдонимом любви.У меня такое ощущение, что это причина того, что следующее не работает:
String[] cmd = {"love", "/Users/mtc06/testgame"};
Runtime.getRuntime().exec(cmd);
И при этом (для тех, кто интересуется):
String[] cmd = {"/bin/bash", "love", "/Users/mtc06/testgame"};
Runtime.getRuntime().exec(cmd);
Без сомнения, это либо какой-то идиотизм Java с моей стороны, либо какое-то противоречие с тем, как работает алиасинг.Я передаю его вашим почтенным умам, ТАК!
ОБНОВЛЕНИЕ: это тоже не работает:
String[] cmd = {"/bin/sh", "/Applications/love", "/Users/michaelcook/Desktop/Playout"};
Runtime.getRuntime().exec(cmd);
Я получаю ошибку 127 от процесса, сгенерированного средой выполнения.Я получаю это как «команда не найдена» везде, где я ее исследую.