2010-06-16 7 views
1

Cela peut être une question rudimentaire mais la réponse n'était pas facilement disponible.Appel de tâches java consécutives dans un script shell

Je voudrais créer un script shell qui appelle consécutivement 3 tâches, mais attendez que la tâche précédente soit terminée.

Comme si:

a. appelez le premier programme Java via ant b. appelez une application Java tierce c. appel troisième programme Java via ant

Je me demande s'il existe un moyen de vérifier et d'assurer un. est fait avant b. est appelé et même pour b. et C.

grâce

+0

Avez-vous essayé? –

Répondre

1

Par défaut des tâches de fourmis arrivent au premier plan, de sorte que votre script ne sera pas continuer jusqu'à ce que chaque tâche ant terminée. Vous n'avez besoin de jouer avec les choses que si vous voulez le comportement opposé: les trois tâches se déroulent simultanément

+0

Merci Micheal, je vais essayer de faire un rapport. – Bigtwinz

0
java some.package 

if [ $? -ne 0 ]; then exit -1; fi; 

java some.other.package 

Par défaut, les appels dans le script sont consécutifs. Si la première exécution de Java 'some.package' ne renvoie pas 0, le code de sortie normal, le script quittera avec -1 sans exécuter 'some.other.package'

0

En supposant que vous travaillez dans un * nix coquille, une solution facile qui vient à l'esprit serait d'exécuter simplement successivement les trois commandes avec l'opérateur & &:


#!/bin/sh 
ant task -f build.xml && java org.mycompany.app && ant anothertask -f buld2.xml 

le & & opérateur fait

[...] chaque commande exécuter à son tour, à condition que la commande précédente a donné une valeur de retour de vrai (zéro). Au premier retour faux (non nul), la chaîne de commande se termine (la première commande renvoyant false est la dernière à exécuter 1).