2016-07-04 158 views
0

我在我的mac中安裝了azure-cli,並且可以成功執行來自cli的所有azure命令。我想從一個Java應用程序做同樣的事情。我見過使用REST端點和azure-sdk-for-java的示例。但我想要的是直接從java執行azure-cli命令。如何從java運行azure-cli命令

我試着從java程序運行'azure登錄',但我得到了以下錯誤。

不能運行程序「蔚藍」:錯誤= 2,沒有這樣的文件或目錄

+1

我不得不提供完整的azure路徑。例如,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)。

    • 如果你在一個shell會話命令export PATH=<your-node-path>/bin:$PATH,你只在當前shell會話中運行了蔚藍色命令的Java程序,甚至通過Java IDE必須在當前shell會話(打開運行它意味着你應該通過命令<your-ide-path>/eclipse打開Eclipse)。
    • 如果配置文件~/.profile~/bashrc添加如下節點運行時,請確保配置文件已在本屆會議上通過命令source ~/.profile重新加載或重新啓動通過註銷&登錄或重新啓動會話。
  2. 一個簡單的方法是,將所述命令鏈接到PATH列出的顯示目錄,如/bin。你只需要運行下面的命令。

    須藤LN -s /斌/節點/斌/節點 須藤LN -s /箱/天藍色/斌/蔚藍

然後你就可以成功地從Java運行Azure的CLI命令。