Return-Path: Delivered-To: apmail-ant-user-archive@www.apache.org Received: (qmail 62370 invoked from network); 27 Apr 2009 17:42:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 27 Apr 2009 17:42:47 -0000 Received: (qmail 61369 invoked by uid 500); 27 Apr 2009 17:42:46 -0000 Delivered-To: apmail-ant-user-archive@ant.apache.org Received: (qmail 61271 invoked by uid 500); 27 Apr 2009 17:42:45 -0000 Mailing-List: contact user-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Ant Users List" Reply-To: "Ant Users List" Delivered-To: mailing list user@ant.apache.org Received: (qmail 61260 invoked by uid 99); 27 Apr 2009 17:42:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Apr 2009 17:42:45 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ashpublic@mac.com designates 17.148.16.93 as permitted sender) Received: from [17.148.16.93] (HELO asmtpout018.mac.com) (17.148.16.93) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 27 Apr 2009 17:42:37 +0000 MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Received: from [192.168.100.200] ([81.111.142.61]) by asmtp018.mac.com (Sun Java(tm) System Messaging Server 6.3-8.01 (built Dec 16 2008; 32bit)) with ESMTPSA id <0KIR0023QT66I480@asmtp018.mac.com> for user@ant.apache.org; Mon, 27 Apr 2009 10:42:09 -0700 (PDT) Message-id: <54A3D383-AD74-4275-B3D3-A3D9433D4002@mac.com> From: Ashley Williams To: Ant Users List In-reply-to: <47E97D51-4D88-4A6B-B628-6B769CB0011F@mac.com> Subject: Re: Calling ant programatically Date: Mon, 27 Apr 2009 18:42:04 +0100 References: <47E97D51-4D88-4A6B-B628-6B769CB0011F@mac.com> X-Mailer: Apple Mail (2.930.3) X-Virus-Checked: Checked by ClamAV on apache.org 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: > > > > > > > > > > > > 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-unsubscribe@ant.apache.org > For additional commands, e-mail: user-help@ant.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscribe@ant.apache.org For additional commands, e-mail: user-help@ant.apache.org