Urgent redirection des E/S + thread parallèle

Le
Mulan
Bonjour

En fait j'ai 2 choses à résoudre qui sont assez indépendantes. La 1e est
urgente et la 2e est facile pour quelqu'un qui a une pratique moyenne de
java, ce qui n'est pas mon cas hélas. Depuis une IHM java je dois lancer un
binaire indépendant.

1/ Un ProcessBuilder est utilisé pour lancer la commande. L'appel a été codé
(pas par moi, non non :-p) comme ceci:

mon_exe_independant < entree > sortie

Ce qui est tout à fait acceptable en ligne de commande sous Unix.

Mais depuis java les redirections sont foirées et je pense très fort qu'il
va falloir casser la commande afin de rediriger autrement les E/S vers ce
programme. Voici la bonne question que je me remercie d'avoir posée: comment
fait-on ?

2/ Faire la même chose dans un thread indépendant afin de récupérer
immédiatement la main dans mon appli. Le but est de lancer ce programme en
parallèle autant que fois que souhaité et de pouvoir continuer à utiliser
l'IHM pendant ce temps. Simplissime mais je débute.

Merci pour toute aide qui sera la bienvenue.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Arnaud Roger
Le #229916

1/ Un ProcessBuilder est utilisé pour lancer la commande. L'appel a é té codé
(pas par moi, non non :-p) comme ceci:

mon_exe_independant < entree > sortie

Ce qui est tout à fait acceptable en ligne de commande sous Unix.

Mais depuis java les redirections sont foirées et je pense très fort qu'il
va falloir casser la commande afin de rediriger autrement les E/S vers ce
programme. Voici la bonne question que je me remercie d'avoir posée: co mment
fait-on ?


Si vous regardez la javadoc de l'objet Process

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Process.html

Il est possible de recupere les flux d'entree, sortie et error

getErrorStream()
getInputStream()
getOutputStream()


2/ Faire la même chose dans un thread indépendant afin de récupér er
immédiatement la main dans mon appli. Le but est de lancer ce programme en
parallèle autant que fois que souhaité et de pouvoir continuer à ut iliser
l'IHM pendant ce temps. Simplissime... mais je débute.


regardez ExecutorService pour lancer ou Thread dans la meme javadoc


Merci pour toute aide qui sera la bienvenue.


Publicité
Poster une réponse
Anonyme