Salut,

une question qui me tarabuste depuis un moment,

j'ai un jar principal qui est lancé par un jar de mise à jour, or je voudrais qu'une fois celui ci lancé, le jar "lanceur" s’arrête.

Je lance mon jar via un processBuilder, que je set en daemon

ici ma méthode d'appel

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 private static void LaunchApplication(ArrayList<String> args) {
	   Lanc_Appli test = new Lanc_Appli(args);
	   Thread standAlo = new Thread(test);
	   standAlo.setDaemon(true);
	   standAlo.start();
    }
et ici ma classe processBuilder

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
20
21
22
23
24
25
26
27
28
29
30
public class Lanc_Appli implements Runnable{
 
    private static Logger logger = Logger.getLogger(Lanc_Appli.class);
    private ArrayList<String> arguments = new ArrayList<String>();
    public Lanc_Appli(ArrayList<String> arguments) {
	   this.arguments =arguments;
    }
 
    @Override
    public void run() {
 
	   Process p = null;
	   try {
 
		  ProcessBuilder pb = new ProcessBuilder(arguments);
 
		  pb = pb.redirectErrorStream(true);
 
		  p = pb.start();
 
		  AfficheurFlux flux = new AfficheurFlux(p.getInputStream());
            new Thread(flux).start();
 
	   } catch (IOException e) {
		  logger.fatal("exception processus", e);
		  p.destroy();
	   } 
    }
 
}
j'ai fait exprès de ne pas avoir de waitfor, mais j'ai toujours une relation établie malgré des system.exit(0) , bref quelqu'un aurait une idée ??