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

programme externe

8 réponses
Avatar
fab
Hello,

Dans un programme java, je dois faire appel à un programme externe qui
va m'écrire OU ME MODIFIER un fichier de données que j'utilise ensuite
dans mon programme java.

C'est le "ensuite" qui pose problème...

Comment faire attendre on programme java jusqu'à ce que le programme
externe ai fini de modifier le fichier ?

Merci pour votre aide !

faba

8 réponses

Avatar
Thierry RICARD
Bonjour,
Une solution parmis d'autre... Elle n'est pas terrible mais elle est rapide
à mettre en place en attendant d'avoir mieux..
Tu peux essayer de faire une boucle qui tourne tant que ton fichier est
ouvert.
Mais attention cela peut etre penible à gerer si ton programme externe se
plante et laisse le fichier ouvert...
En java je ne sais pas comment faire.

Thierry


"fab" a écrit dans le message de news:

Hello,

Dans un programme java, je dois faire appel à un programme externe qui
va m'écrire OU ME MODIFIER un fichier de données que j'utilise ensuite
dans mon programme java.

C'est le "ensuite" qui pose problème...

Comment faire attendre on programme java jusqu'à ce que le programme
externe ai fini de modifier le fichier ?

Merci pour votre aide !

faba


Avatar
fab
Tu peux essayer de faire une boucle qui tourne tant que ton fichier est
ouvert.


j'y avais pensé, mais comment savoir si le fichier est encore ouvert ?
J'utilise déjà file.exists() pour attendre sa création, mais je vois pas
quelle méthode utiliser pour tester son ouverture.

remerci !

faba

Avatar
vclassine
fab wrote in message news:...
Hello,

Dans un programme java, je dois faire appel à un programme externe qui
va m'écrire OU ME MODIFIER un fichier de données que j'utilise ensuite
dans mon programme java.

C'est le "ensuite" qui pose problème...

Comment faire attendre on programme java jusqu'à ce que le programme
externe ai fini de modifier le fichier ?


Et bien avec Runtime tu peux bloquer le thread courant jusqu'à ce que
le programme que tu as lancé se termine...

Avatar
fab
Et bien avec Runtime tu peux bloquer le thread courant jusqu'à ce que
le programme que tu as lancé se termine...


ma question étant ... comment... ?!?

faba

Avatar
Patrick Gras
"fab" wrote in message
news:
Et bien avec Runtime tu peux bloquer le thread courant jusqu'à ce que
le programme que tu as lancé se termine...


ma question étant ... comment... ?!?

faba


Comme ça:

Runtime rt = Runtime.getRuntime(); // creates a runtime object associated
with the current thread

Process p = rt.exec(command); // execute the DOS command

p.waitFor(); // calling thread must wait the process to have finished


-Patrick


Avatar
Nicolas Delsaux
Le 21.11 2003, Patrick Gras s'est levé et s'est dit : "tiens, si j'écrivais
aux mecs de fr.comp.lang.java ?"

Comme ça:

Runtime rt = Runtime.getRuntime(); // creates a runtime object associated
with the current thread

Process p = rt.exec(command); // execute the DOS command

Avant même d'envisager utiliser Runtime.exec, il faut à tout prix lire

l'article why runtime.exec() won't, sur Javaworld
(http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html).

--
Nicolas Delsaux
Les maximes du marin shadok : Dans la marine, c'est un principe : il faut
saluer tout ce qui bouge, et peindre le reste.

Avatar
vclassine
fab wrote in message news:...
Et bien avec Runtime tu peux bloquer le thread courant jusqu'à ce que
le programme que tu as lancé se termine...


ma question étant ... comment... ?!?


donc

Process pr = Runtime.getRuntime().exec("ma commande");
pr.waitFor();


Avatar
faba
p.waitFor(); // calling thread must wait the process to have finished


merveilleux, c'est exactement ça.

merci bcp !

faba