2010-10-05 6 views
0

J'essaye d'exécuter la commande ci-dessous sur Solaris qui est suspendu.java.lang.Process.waitFor() est suspendu

swmml -l /tmp/swmmlLog.txt -n N1 -e AFFICHAGE-M3UA-LSET;

; swmml -> script perl.

J'ai essayé d'éliminer les flux/fermer les flux. Rien ne fonctionne. J'ai essayé avec les deux ProcessBBuilder et Runtime.exec() mais sans succès.

Nous avons essayé de lire dans les flux. Mais la méthode de lecture est elle-même suspendue. Le code suivant n'imprime rien.

while (true) { 
    String s = br.readLine(); 
    if (s == null) break; 
    System.out.println (s); 
} 
+0

publiez le code non-fonctionnel, et n'oubliez pas de le formater correctement. – aioobe

Répondre

8

Vous dites que vous vider et fermer les cours d'eau, mais vous êtes entièrement lecture le contenu des deux la sortie standard et erreur standard?

Un problème courant est que le processus fils se bloque car son tube d'erreur standard se remplit lorsque le processus Java parent néglige de consommer sa sortie.

Questions connexes