簡短版本:從Windows命令行程序中產生一個多線程Java程序,spawner將不會結束,直到spawnee結束。我怎樣才能防止掛起?
如何防止Windows中產生的Java進程阻止產卵過程結束?
龍版本:
我試圖催生一個多線程Java程序(硒RC,而不是它應該的問題)從Windows命令行啓動程序(南特的<EXEC>任務,再次,不是這應該很重要)。我正在使用Windows「開始」命令執行此操作,並且生成的進程已啓動並正確運行。產卵過程接收控制回來並結束(NAnt表示「BUILD SUCCEEDED」),但實際上並不退出到命令行。當生成的進程終於終止(可能在數小時後),命令進程返回並出現命令行提示符。
例如:
<target name="start_rc">
<exec program="cmd" failonerror="false" workingdir="${ross.p5.dir}\Tools\selenium\selenium-server-1.0.1" verbose="true">
<arg value="/C"/>
<arg value="start"/>
<arg value="java"/>
<arg value="-jar"/>
<arg path="${ross.p5.dir}\Tools\selenium\selenium-server-1.0.1\selenium-server.jar"/>
<arg value="-userExtensions"/>
<arg path="${ross.p5.dir}\Tools\selenium\selenium-server-1.0.1\user-extensions.js"/>
<arg value="-browserSideLog"/>
<arg value="-log"/>
<arg value="${ross.p5.dir}\artifacts\selenium.log"/>
<arg value="-debug"/>
</exec>
</target>
產地:
C:\Ross>nant start_rc
NAnt 0.86 (Build 0.86.2898.0; beta1; 12/8/2007)
Copyright (C) 2001-2007 Gerry Shaw
http://nant.sourceforge.net
Buildfile: file:///C:/Ross/ross.build
Target framework: Microsoft .NET Framework 3.5
Target(s) specified: start_rc
start_rc:
[exec] Starting 'cmd (/C start java -jar C:\p5\Tools\selenium\selenium-server-1.0.1\selenium-server.jar -userExtensions C:\p5\Tools\selenium\selenium-server-1.0.1\user-extensions.js -browserSideLog -log C:\p5\artifacts\selenium.log -debug)' in 'C:\p5\Tools\selenium\selenium-server-1.0.1'
BUILD SUCCEEDED
Total time: 4.1 seconds.
...然後什麼,直到我關閉其中的Java運行時,則窗口...
C:\Ross>
顯然有些東西阻止了nant進程終止,但Windows START命令不應該阻止這種情況發生?
謝謝,那正是我需要的答案。我使用nant而不是ant,但它有相同的選項。我仍然認爲有些事情已經被打破了,因爲START不應該讓thangs danglin離開,但我不會爭論成功!現在,如果只有nant doc和ant doc一樣清晰! – 2010-05-17 18:43:59
@羅絲,對,我忘了。事實上,這些任務幾乎是一樣的。但是,爲了適應這個話題,我將編輯我的答案,指向南特網站,而不是ANT。 – 2010-05-17 19:34:14