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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
}