Le Mardi 4 Mars 2003 22:36, Pierre-Yves Maunier a �crit :
> bonjour, je tente d'�x�cuter une commende linux depuis un programme java :

> j'ai bien output.txt qui est cr�� avec le r�sultat de la comande mais le
> programme continue de tourner, je ne revient pas a la ligne de commande. je
> suis obliger d'interrompre le processus avec CTRL+C
> qqn aurait une id�e la dessus ?

  Bonjour,

  Je pense que le probl�me vient du fait que dans le premier cas (en passant 
la redirection dans la ligne de commande), ce travail est g�r� par Linux, 
alors que si "> output.txt" est �crit dans le code Java, c'est le sh ex�cut� 
par la VM qui s'en charge; Donc il n'y a aucun retour de la part de ce 
process-l�.

  Le probl�me est donc du au fait que la m�thode read(byte[]) est bloquante. 
Pour �viter le probl�me, il faut soit mettre un timeout (avec un Thread � 
part), soit utiliser une m�thode non bloquante (pas facile � trouver en Java 
sauf peut �tre si on utilise la m�thode read() de l'InputStream directement).

  En esp�rant fournir une aide,

 Jean-Luc Rossiny

Répondre à