0

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

我尝试从 java 程序运行“azure login”,但出现以下错误。

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

4

2 回答 2

0

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

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

于 2016-07-06T20:43:45.343 回答
0

@harshithabt 根据我的经验,该问题是由于azure无法在PATH. 有两种方法可以解决在 Java 中运行命令的问题,请参见下文。

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

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

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

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

于 2016-07-11T06:05:13.033 回答