[Runtime] Runtime.getRuntime().exec() Lancer un autre jar
Bonjour,
J'ai un petit projet de lancement de mon application : Il effectue certains traitements, puis termine en lancant le jar de mon application par la commande "javaw -jar ...".
Après quelques galères et la FAQ, il fonctionne. Mais j'ai un petit problème : l'application lancée démarre plus vite que le lanceur ne se termine. Y aurait-il un moyen (un peu comme File.deleteOnExit), de n'exécuter la commande qu'à la sortie du lanceur ?
Voici la partie de code du lanceur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void extrait(){
String commande = "javaw -jar \"chemin/monjar.jar\" arguments";
this.lancer(commande);
}
private void lancer(String commande){
Runtime rtGenExe = Runtime.getRuntime();
try {
Process proc = rtGenExe.exec(commande, null, new File(démarrage));
this.consume(proc);
} catch (Throwable e) {}
}
private void consume(final Process proc){
// Ce close est dans un thread, selon la même technique que la FAQ
process.getOutputStream().close();
//Consommation des flux
// http://ydisanto.developpez.com/tutoriels/j2se/runtime/#LIII-B
} |