如何从java运行azure-cli命令

时间:2016-07-04 17:21:30

标签: java azure azure-cli

我在mac中安装了azure-cli,我可以成功执行cli的所有azure命令。我想从java应用程序中做同样的事情。我已经看到了使用REST端点和azure-sdk-for-java的示例。但我想要的是直接从java执行azure-cli命令。

我尝试从java程序运行'azure login',但是我收到了以下错误。

  

无法运行程序“azure”:error = 2,没有这样的文件或目录

2 个答案:

答案 0 :(得分:0)

问题在于缺少PATH变量。如果你想享受相同的"找到命令"您在命令行中拥有的功能,您需要在Java程序中以某种方式设置它:从环境中导入PATH变量,在您编写的代码中设置它,或者任何混合物满足您的需求。

给出绝对(完整)路径是最可靠的方法,但您可能不希望在源代码中读取如此长的命令名称。

答案 1 :(得分:0)

@harshithabt根据我的经验,该问题是由azure中列出的PATH命令无法搜索引起的。有两种方法可以解决在Java中运行命令的问题,请参阅下文。

  1. 为当前shell会话或配置文件PATH(或~/.profile)设置环境变量~/.bashrc

    • 如果在shell会话中命令export PATH=<your-node-path>/bin:$PATH,则只在当前shell会话中使用azure命令运行Java程序,甚至通过必须在当前shell会话中打开的Java IDE运行(这意味着你应该通过命令<your-ide-path>/eclipse)打开Eclipse。
    • 如果您配置文件~/.profile~/bashrc以添加节点运行时,请确保在当前会话中通过命令source ~/.profile重新加载配置文件或重新启动会话通过注销&amp;登录或重启。
  2. 一种简单的方法是将命令链接添加到PATH中列出的目录中,例如/bin。您只需要运行以下命令。

    sudo ln -s / bin / node / bin / node sudo ln -s / bin / azure / bin / azure

  3. 然后你可以成功地从Java运行azure-cli命令。