Exécuter une application externe avec survie après Java
Bonjour,
Je voudrais exécuter une application externe à mon programme Java, mais je voudrais que celui-ci continue à s'exécuter, même si mon programme est arrêté.
Donc, pour exécuter un programme externe, j'utilise la classe Process, et comme conseillé sur le blog de adiGuba (http://blog.developpez.com/adiguba/p...s-plus-simple/), je vide mes flux grâce à cette classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class Drain extends Thread {
private final InputStream stream;
public Drain(InputStream inputstream) {
stream = inputstream;
}
@Override
public void run() {
try {
while (stream.read() != -1) {
}
} catch (IOException ioexception) {
}
}
} |
Ce qui donne l'appel suivant :
Code:
1 2 3 4 5
| Process process = Runtime.getRuntime().exec(new String[]{
(new File(MON_FICHIER_EXE)).getPath()
});
new Drain(process.getErrorStream()).start();
new Drain(process.getInputStream()).start(); |
Donc, il me semble avoir tout suivi correctement...
Cependant, si je ne m'abuse, si je termine mon application Java (qui se termine "malheureusement" par un System.exit(0)), le processus lancé continue à être exécuté, mais les flux ne sont plus vidés...
Ai-je un moyen de faire cela vraiment proprement, car actuellement, j'ai un peu l'impression de le faire qu'à moitié...
Merci d'avance pour vos réponses :)