Je lance un processus de fenêtres (écrit en C++, mais je ne veux pas avoir des sources) à partir du code Java de la manière suivante:Pourquoi Process.waitFor() ne retourne-t-il jamais?
Process p1 = Runtime.getRuntime().exec(cmdAndParams);
p1.waitFor();
Mon problème est que la méthode waitFor() ne se termine jamais. J'ai donc essayé de lancer le processus dans un shell simple et il se termine correctement avec beaucoup d'impression dans le shell (sortie standard je suppose).
J'ai donc décidé de créer et démarrer un thread en lisant la sortie standard même si je n'ai pas besoin pour l'instant de ces sorties. Cela a corrigé le problème. Donc ma question est la suivante: Cette solution est-elle la "norme Java pour lancer et attendre des processus externes ayant des sorties" ou cela signifie-t-il qu'il y a un problème quelque part dans le processus natif? Si un tel problème existe quelle programmation C++ "error" peut être à l'origine du problème?
Merci. La réponse était dans le Javadoc mais au niveau de la classe et je n'ai lu que les méthodes exec et waitFor doc. La prochaine fois je lirai aussi le doc de classe ;-) –