2016-07-04 2 views
0

У меня есть azure-cli, установленный в моем mac, и я могу успешно выполнить все команды azure из cli. Я хочу сделать то же самое из приложения Java. Я видел примеры использования конечных точек REST и azure-sdk-for-java. Но я хочу выполнить команды azure-cli непосредственно из java.Как запустить команды azure-cli из java

Я попытался запустить 'azure login' из java-программы, но получил следующую ошибку.

Не удается запустить программу «лазурь»: ошибка = 2, Нет такого файла или каталога

+1

Я должен был дать полный путь к лазури. Например, работает Runtime.getRunTime.exec ('/ usr/local/bin/azure account show'). –

ответ

0

Проблема заключается в отсутствии переменной PATH. Если вы хотите использовать те же функции «найти команду», которые у вас есть в командной строке, вам нужно как-то установить ее в своей программе Java: импортируйте переменную PATH из среды, установите ее в код, который вы пишете, или какая-либо смесь покрывает ваши потребности.

Отдача абсолютного (полного) пути является самым верным способом, но вы можете не захотеть читать такие длинные имена команд в своих исходных кодах.

+0

'System.getenv (« PATH »). Split (": ")' будет хорошим началом. Затем вам придется перебирать каждую запись и проверять, существует ли файл в этой папке. –

0

@harshithabt По моему опыту проблема была вызвана командой azure не удалось найти в каталогах, перечисленных в PATH. Существует два способа решения проблемы для запуска команд на Java, см. Ниже.

  1. Настройка переменной среды PATH для текущего сеанса оболочки или конфигурационные файлы ~/.profile (или ~/.bashrc).

    • Если команда export PATH=<your-node-path>/bin:$PATH в сеансе оболочки, вы только запустить программу Java с лазурной командой в текущем сеансе оболочки, даже запустить через Java IDE, который должен быть открыт в текущем сеансе оболочки (это означает, что вы должны открыть Eclipse с помощью команды <your-ide-path>/eclipse).
    • Если настроить файлы ~/.profile или ~/bashrc, чтобы добавить среду выполнения узла, как показано ниже, убедитесь, что файлы конфигурации были перегружены с помощью команды source ~/.profile в текущем сеансе или перезапускать сеансов через выход из системы & входа в систему или перезагрузки.
  2. Простой способ заключается в том, что добавление команд ссылки в директории, перечисленных в PATH, такие как /bin. Вам просто нужно выполнить приведенные ниже команды.

    Судо пер -s/bin/узел/бен/узел Судо пер -s/bin/лазурь/бен/лазурь

Затем вы можете запустить лазурь-CLI команды из Java успешно.

Смежные вопросы