我在mac中安装了azure-cli,我可以成功执行cli的所有azure命令。我想从java应用程序中做同样的事情。我已经看到了使用REST端点和azure-sdk-for-java的示例。但我想要的是直接从java执行azure-cli命令。
我尝试从java程序运行'azure login',但是我收到了以下错误。
无法运行程序“azure”:error = 2,没有这样的文件或目录
答案 0 :(得分:0)
问题在于缺少PATH变量。如果你想享受相同的"找到命令"您在命令行中拥有的功能,您需要在Java程序中以某种方式设置它:从环境中导入PATH变量,在您编写的代码中设置它,或者任何混合物满足您的需求。
给出绝对(完整)路径是最可靠的方法,但您可能不希望在源代码中读取如此长的命令名称。
答案 1 :(得分:0)
@harshithabt根据我的经验,该问题是由azure
中列出的PATH
命令无法搜索引起的。有两种方法可以解决在Java中运行命令的问题,请参阅下文。
为当前shell会话或配置文件PATH
(或~/.profile
)设置环境变量~/.bashrc
。
export PATH=<your-node-path>/bin:$PATH
,则只在当前shell会话中使用azure命令运行Java程序,甚至通过必须在当前shell会话中打开的Java IDE运行(这意味着你应该通过命令<your-ide-path>/eclipse
)打开Eclipse。~/.profile
或~/bashrc
以添加节点运行时,请确保在当前会话中通过命令source ~/.profile
重新加载配置文件或重新启动会话通过注销&amp;登录或重启。一种简单的方法是将命令链接添加到PATH
中列出的目录中,例如/bin
。您只需要运行以下命令。
sudo ln -s / bin / node / bin / node sudo ln -s / bin / azure / bin / azure
然后你可以成功地从Java运行azure-cli命令。