2010-07-30 3 views
2

Si je suis en cours d'exécution programme externe (fichier batch) de Java puis, ce que je dois faire:en cours d'exécution programme externe en java

if (process.exitValue() == 0) {//means executed successfully ??? 

peut pas la valeur de retour quelque chose d'autre et lot exécuté avec succès.

Est-ce la seule façon de vérifier ??

Répondre

1

Je suis un peu confus par vos mots, mais par convention, [exitValue()] (http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html#exitValue()) retours 0 sur une bonne exécution. Ceci est, pour autant que je sache, la seule façon de vérifier.

EDIT:

Je suppose que vous pouvez utiliser [getErrorStream()] (http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html#getErrorStream()) - Je suppose que ce sera vide s'il n'y a pas d'erreurs dans le processus ...

0

Le code de sortie du traitement par lots sera défini par ce processus, mais généralement un code de sortie de 0 est défini comme réussi et une valeur non nulle indique que quelque chose s'est mal passé. Dans votre fichier batch que vous pouvez définir le code de retour en appelant:

EXIT /B %ERROR_CODE% 

%ERROR_CODE% est le numéro qui sera retourné comme le code de sortie.

0

Sur Linux, votre programme peut retourner un statut que vous voulez. Par convention, 0 signifie succès. Par exemple, si vous exécutez un script shell, l'état de retour sera l'état de retour de la dernière commande exécutée dans votre script.

0

Dans beaucoup de programmes 0 est succès, les nombres négatifs sont des erreurs et les nombres positifs sont des avertissements. Bien sûr, ce n'est qu'une convention et tout dépend de la convention suivie. Dans la plupart des langages de programmation, vous pouvez définir un code de sortie pour un programme et c'est ce qui est récupéré. En Java System.exit (n)
En C principal est défini comme int main (int argc, char * argv []) et le retour de principal est le retour du programme.

Questions connexes