使用 Ant 执行可以使用绝对路径,但不能使用相对路径

发布于 2024-07-21 18:47:28 字数 445 浏览 6 评论 0原文

我的 Ant 脚本中有以下代码片段。 它执行得很好:

<exec executable="C:\test\foo\programName.exe" />

但是当我尝试通过设置目录来执行它时,如下所示:

<exec executable="programName.exe"
  dir="C:\test\foo\" />

我得到:

执行失败:java.io.IOException: 无法运行程序“programName.exe” (在目录“C:\test\foo”中): CreateProcess错误=2,系统 找不到指定的文件

请帮忙! 为什么单独指定目录时不起作用?

I have the following snippet in my Ant script. It executes just fine:

<exec executable="C:\test\foo\programName.exe" />

But then when I try to execute it by setting the directory, like so:

<exec executable="programName.exe"
  dir="C:\test\foo\" />

I get:

Execute failed: java.io.IOException:
Cannot run program "programName.exe"
(in directory "C:\test\foo"):
CreateProcess error=2, The system
cannot find the file specified

Please help! Why is it not working when the directory is specified separately?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

疏忽 2024-07-28 18:47:28

添加 resolveexecutable 属性:

<exec executable="programName.exe" 
  resolveexecutable="true"
  dir="C:\test\foo\" />

解析可执行文件当这个
属性为 true 时,名称
首先解析可执行文件
项目 basedir ,如果是的话
不存在,反对执行
目录(如果指定)。 在Unix上
系统,如果您只想允许
执行用户中的命令
路径,将其设置为 false。 从 Ant 1.6 开始
否,默认为 false

Add the resolveexecutable attribute:

<exec executable="programName.exe" 
  resolveexecutable="true"
  dir="C:\test\foo\" />

resolveexecutable When this
attribute is true, the name of the
executable is resolved firstly against
the project basedir and if that does
not exist, against the execution
directory if specified. On Unix
systems, if you only want to allow
execution of commands in the user's
path, set this to false. since Ant 1.6
No, default is false

爱情眠于流年 2024-07-28 18:47:28

我最终坚持了这一点:

<exec executable="${basedir}\myexefile.exe}" />

I ended up sticking with this:

<exec executable="${basedir}\myexefile.exe}" />
少女的英雄梦 2024-07-28 18:47:28

试试这个:

<property name="prog.dir" value="C:/test/foo" />
<exec executable="${prog.dir}/programName.exe"/>

看来您执行程序的目录必须位于您的构建路径中。

Try this:

<property name="prog.dir" value="C:/test/foo" />
<exec executable="${prog.dir}/programName.exe"/>

It appears that the directory from which you execute the program must be in your build path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文