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?
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
I ended up sticking with this:
<exec executable="${basedir}\myexefile.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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With