我有一个 ant 构建文件,我在其中尝试使用环境变量中引用的可执行文件,但 Ant 找不到它。
我回显了 PATH 变量的值,发现它实际上没有得到任何东西。我不知道为什么。
下面是代码示例和输出。
蚂蚁构建文件:
<target name ="cmd-local">
<echo message="$PATH is set to = ${PATH}" />
<echo message="%PATH is set to = %PATH%" />
<exec executable="cmd.exe">
<arg line="/c echo %PATH%" />
</exec>
</target>
输出:
[echo] $PATH is set to = ${PATH}
[echo] %PATH is set to = %PATH%
[exec] C:/Users/user1/Application/jdk1.8.0_121/bin/..
我不确定为什么前两个没有打印任何东西。
主要问题是 Ant 默认情况下不会将环境导入到属性中。 你必须要求它这样做,并指定一个前缀,例如:
<property environment="env" />
这会将环境变量加载到名称为env.PATH
的属性中,因此您可以使用以下内容访问PATH
:
<echo message="$PATH is set to = ${env.PATH}" />
在 Ant 中,像%PATH%
这样的 Windows 样式环境引用并没有什么特别之处,它们只是被视为文字字符串。
遇到同样的问题,您应该考虑尝试此操作(区分大小写(
<echo message="$PATH is set to = ${env.Path}" />
这对我有用(在蚂蚁 1.9.5 上(