如何从java运行azure-cli命令
我在我的mac中安装了azure-cli,并且可以成功执行来自cli的所有azure命令。我想从一个Java应用程序做同样的事情。我见过使用REST端点和azure-sdk-for-java的示例。但我想要的是直接从java执行azure-cli命令。如何从java运行azure-cli命令
我试着从java程序运行'azure登录',但我得到了以下错误。
不能运行程序“蔚蓝”:错误= 2,没有这样的文件或目录
的问题是缺乏PATH变量中。如果您想要享受您在命令行上找到的相同的“查找命令”功能,则需要在Java程序中以某种方式进行设置:从环境中导入PATH变量,将其设置在正在编写的代码中,或任何混合物涵盖您的需求。
给出绝对(完整)路径是最可靠的方法,但您可能不希望在源代码中读取如此长的命令名称。
'System.getenv(“PATH”)。split(“:”)'是一个好的开始。然后你必须遍历每个条目并检查文件是否存在于该文件夹中。 –
@harshithabt根据我的经验,问题是由命令azure
造成的,无法在PATH
中列出的目录中搜索。有两种方法可以解决Java中运行命令的问题,请参阅下文。
-
设置环境变量
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
重新加载或重新启动通过注销&登录或重新启动会话。
- 如果你在一个shell会话命令
-
一个简单的方法是,将所述命令链接到
PATH
列出的显示目录,如/bin
。你只需要运行下面的命令。须藤LN -s /斌/节点/斌/节点 须藤LN -s /箱/天蓝色/斌/蔚蓝
然后你就可以成功地从Java运行Azure的CLI命令。
我不得不提供完整的azure路径。例如,Runtime.getRunTime.exec('/ usr/local/bin/azure account show')工作。 –