Can you insert the Ant project that calls both the Java application and the
batch job?
If so, then you can use the parallel task, see
http://ant.apache.org/manual/CoreTasks/parallel.html


On Mon, Apr 27, 2009 at 12:42 PM, Ashley Williams <ashpub...@mac.com> wrote:

> Ok here's a little more context.
>
> It seems that the exec/spawn=true command works as expected when called on
> its own directly from java.exe
> but not from an intermediate ant java task, so:
>
> 1. GOOD... When I launch the cmd.exe from a programmatic ant exec task, the
> exec task and java.exe both complete, and the dos window
> remains until I close it ( I've left a large gap in the chain description
> so it lines up with the next example):
>
>
>
>    java.exe   --->
>                  ant-exec (spawn=true)   --->   cmd.exe
>    (terminates before dos cmd.exe window is closed)
>
>
> 2. BAD... When I insert an programmatic ant java task, the exec task
> appears to complete but the ant java task doesn't. Then when
> I close the dos window the java.exe process completes also. This is despite
> the ant-exec spawn attribute being true.
>
>
>
>    java.exe   --->   ant-java (fork=true, spawn=false)   --->   ant-exec
> (spawn=true)   --->   cmd.exe
>    (terminates only when dos cmd.exe window is closed)
>
>
> I know it looks a little unusual to have the extra ant-java task in there
> but it is necessary for my use-case and I don't have
> the option to set spawn to true for it. Any ideas?
>
> Many Thanks
> - Ashley
>
>
>
> On 24 Apr 2009, at 13:20, Ashley Williams wrote:
>
>  Hi,
>>
>> I  would like to know how to start a batch file in a new dos window
>> without blocking the java process and so naturally I
>> tried the following that does work:
>>
>> <project name="project" default="target" basedir=".">
>>  <target name="target">
>>          <exec executable="cmd" spawn="true" dir="${basedir}">
>>            <arg value="/c"/>
>>            <arg value="start"/>
>>            <arg value="test.bat"/>
>>          </exec>
>>  </target>
>> </project>
>>
>> However I need to be able to do this from java and so I used the following
>> snippet of code that I thought would
>> represent the same functionality as the ant script:
>>
>> public static void main(String[] args) throws IOException {
>>        // top level project
>>        Project project = new Project();
>>        project.setName("project");
>>        project.init();
>>
>>        // project has a target child
>>        Target target = new Target();
>>        target.setName("target");
>>        project.addTarget(target);
>>
>>        // target has an exec child
>>        ExecTask execTask = new ExecTask();
>>        execTask.setProject(project);
>>        target.addTask(execTask);
>>        execTask.setExecutable("cmd.exe");
>>        execTask.setSpawn(true);
>>        execTask.setDir(new File("."));
>>        addArg(execTask, "/c");
>>        addArg(execTask, "start");
>>        addArg(execTask, "test.bat");
>>        target.execute();
>> }
>>
>> However it doesn't matter whether or not I set true of false for the spawn
>> property the java process blocks
>> every time until I close the dos window by hand. Is there something else I
>> need to do to more closely
>> replicate the ant script?
>>
>> Cheers
>> - Ashley
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
>> For additional commands, e-mail: user-h...@ant.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
> For additional commands, e-mail: user-h...@ant.apache.org
>
>

Reply via email to