Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Urgent redirection des E/S + thread parallèle

1 réponse
Avatar
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.

1 réponse

Avatar
Arnaud Roger

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.