Comment puis-je empêcher un processus Java donné naissance dans Windows de bloquer le processus de reproduction de fin?
Version longue:
Je suis en train de lancer un programme Java multi-thread (Selenium RC, pas qu'il devrait la matière) d'un programme lancé depuis la ligne de commande Windows (< de NAnt exec > tâche, encore une fois, pas que cela devrait avoir de l'importance). Je le fais en utilisant la commande "start" de Windows, et le processus engendré est démarré et fonctionne correctement. Le processus de génération reçoit le contrôle et se termine (NAnt dit "BUILD SUCCEEDED"), mais ne sort pas réellement de la ligne de commande. Lorsque le processus engendré se termine finalement (pourrait être des heures plus tard), le processus de commande retourne et l'invite de ligne de commande se produit.
Par exemple:
<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>
Produit:
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.
... et puis plus rien jusqu'à ce que je ferme la fenêtre où Java est en cours d'exécution, puis ...
C:\Ross>
Évidemment quelque chose empêche le processus nant de se terminer, mais la commande Windows START ne devrait-elle pas empêcher cela?
Merci, c'était exactement la réponse dont j'avais besoin. J'utilise nant, pas fourmi, mais il a la même option.Je pense toujours que quelque chose est cassé plus bas, puisque START ne devrait pas quitter thangs danglin ', mais je ne vais pas argumenter avec succès! Maintenant, si seulement le doc nant était aussi clair que le doc de la fourmi! –
@Ross, à droite, j'ai oublié. La réalité est que les tâches sont à peu près les mêmes. Cependant, juste pour correspondre au sujet, je vais éditer ma réponse pour pointer sur le site Web de NANT au lieu de ANT. –