У меня есть команда, которая не работает при вводе в терминал, хотя я хотел бы выполнить ее из java-программы.
Я использую этот код, где «homedir» был найден при вводе в терминал which spark
.Команда выполнения Java в OSX
String homedir = "/usr/local/bin/spark";
File wd = new File(homedir);
Process pwd = Runtime.getRuntime().exec("spark", null, wd);
Когда я запускаю код, хотя я все еще получаю ошибку: Cannot run program "spark" (in directory "/usr/local/bin"): error=2, No such file or directory
Что я отсутствующий что мешает это работать?
Использование '.exec ("/usr/local/bin/spark/spark ");' похоже, удаляет ошибку, но ничего не возвращает. Как я могу отправить в разные строки с этим? Например, «список искры» или «искровой вызов ...». Запуск 'ls -lah/usr/local/bin/spark' дает мне новый путь'/usr/local/bin/spark -> ../ lib/node_modules/spark-cli/bin/spark.js'. Хотя изменение этого каталога также дает мне ту же самую старую ошибку. –
@StudBeefpile Я обновил свой ответ, чтобы иметь более подробную информацию. Надеюсь, это прояснит ситуацию. – Hendrikvh
Так что попытка 'wd.getCanonicalPath()', похоже, не отличается от моего пути. Я не уверен, правильно ли я использую его: 'wd.getCanonicalPath();' Я также попытался: 'File path = new File (wd.getCanonicalPath()); ' Для запуска запуска'. exec ("/ usr/local/bin/spark/spark"); 'Я возвращаюсь:' Не удается запустить программу '/ usr/local/bin/spark/spark ": error = 20, Not a directory'. Я полностью в тупике. –