En java déterminer si un processus est créé à l'aide de l'environnement d'Exécution a fini de l'exécution?

Runtime.getRuntime.exex("abc.exe -parameters");

à l'aide de .waitFor() n'aide pas à déterminer l'achèvement du processus.

Quel est le problème avec waitFor()?
waitFor la documentation dit qu'elle renvoie si le processus est arrêté. La valeur de retour est la valeur de sortie du processus. waitFor jette aussi un InterruptException si une interruption se produit. Pouvez-vous partager ce comportement que vous attendez de processus abc.exe? Vous pouvez avoir besoin de capturer la sortie d'erreur ou de ruisseaux.
Pouvez-vous indiquer pourquoi waitFor() ne vous aide pas dans ce cas? Votre déclaration est en contradiction avec la documentation, et j'ai confiance dans la documentation pas un hasard étranger sur Internet.
l'abc.exe fichier de code les messages d'un fichier à l'autre.Une fois que la tâche est terminée sa va pour une attente indéfinie(je ne sais pas pourquoi?).
Si le comportement de la abc.exe le processus est de faire quelque chose et puis de perdre du temps à ne rien faire, que votre processus ne va pas mettre fin et waitFor garder en attente pour elle. Compte tenu de cette information, la réponse à la question titre, c'est que le processus n'a jamais fini. Une hypothèse peut être faite que ce soit abc.exe est cassé ou mal compris.

OriginalL'auteur devashish jasani | 2011-07-29