Dear Wiki user, You have subscribed to a wiki page or wiki category on "Ant Wiki" for change notification.
The following page has been changed by DavidOram: http://wiki.apache.org/ant/AntOnWindows ------------------------------------------------------------------------------ * Add your java JDK Path to the user variables as well. The name should be JAVA_HOME and the value should be the path to the JDK software on your hard-drive. (i.e. JAVA_HOME = C:\Program Files\java\jdk1.6.0_02) * If there is already a PATH variable, edit it and add to it. Otherwise, create one more variable named PATH, and add to it ;%ANT_HOME%\bin + + = Executing batch files = + When executing batch files on windows through the <exec> task you commonly execute the cmd.exe program to run the batch file. However this means that any ERRORLEVEL reported by the batch file is not propagated up to ant. If you want to run a batch file, and fail if the batchfile sets the ERRORLEVEL, then you can try this recipe: + + <!-- + When running a batch files from ant, it cannot detect the %ERRORLEVEL% as set by 'exit /B 1' + This macro is inspired from http://marc.info/?l=ant-user&m=117748848509224&q=raw + and provides a wrapper to detect this correctly + --> + <macrodef name="runBat"> + <attribute name="batch"/> + <attribute name="args"/> + <sequential> + <delete file="${user.dir}/runBat.err" failonerror="false"/> + <echo file="${user.dir}/runBat.bat"> + call @{batch} @{args} + if ERRORLEVEL 1 ( + echo %ERRORLEVEL% > ${user.dir}\runBat.err + ) + </echo> + <exec executable="cmd"> + <arg value="/c"/> + <arg value="${user.dir}\runBat.bat"/> + </exec> + <delete file="${user.dir}/runBat.bat"/> + <fail message="ERROR: @{batch} failed"> + <condition> + <available file="${user.dir}/runBat.err"/> + </condition> + </fail> + </sequential> + </macrodef> + + + And to execute a batch file: + <runBat batch="mycommand.bat" args="foo bar moo"/> + + This will fail the ant script if mycommand.bat fails, ie: if the batchfile executes "exit /b 1" +
