OVH Cloud OVH Cloud

Fiabilité du Runtime.exec() pour éxécuter une command externe

2 réponses
Avatar
figus
Salut à tous

Je suis sur le point d'utiliser Runtime.exec() pour lancer des commandes
externes.

Seulement voilà. A la lecture de la javadoc, je suis pas très optimiste
sur le bon fonctionnement de la chose.

1ère raison : parmi les commandes externes que je vais lancer, il y a
des shell scripts. Quelles sont vos expériences dans le domaine ?
Quelles leçons en avez-vous tiré ?

2ème raison : l'interfaçage avec les input et output stream du process
ne semblent pas très fiables et surtout les conséquences sont plus
qu'ennuyeuses. Je cite la javadoc : "may cause the subprocess to block,
and even deadlock". La javadoc recommande l'utilisation de stream
bufferisé mais malgré tout, je ne suis pas plus rassuré que ça. Donc
mêmes questions : quelles sont vos expériences et quelles leçons en
avez-vous tiré ?

Merci d'avance.

2 réponses

Avatar
Zazoun
La lecture de l'article
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html (en
anglais) peut t'être utile. Il présente en particulier une méthode
pour vider l'error stream et l'input stream du processus créé, et
éviter que celui-ci ne s'arrête.

Zazoun
Avatar
figus
Zazoun wrote:
La lecture de l'article
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html (en
anglais) peut t'être utile. Il présente en particulier une méthode
pour vider l'error stream et l'input stream du processus créé, et
éviter que celui-ci ne s'arrête.


Merci.
J'étais pas loin du compte, mais j'avais quand même des soucis.

C'est loin d'être simple si on a pas une référence comme celle-là.