Bonjour à tous,
D'abord milles excuses, je suis sur que mon problème est déjà apparu sur ce forum car c'est plutôt classique mais impossible de mettre la main dessus.

Voici mon problème :
- j'ai une application qui fonctionne correctement, appelons la A. C'est une application qui s’exécute en arrière plan.
- sous certaines conditions, A peut lancer un Jar via la commande suivante :
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
31
32
33
34
35
36
37
38
process = Runtime.getRuntime().exec(JAR_PATH + jarName);
freeProcess();
 
private void freeProcess() {
        // Consommation de la sortie standard de l'application externe dans un Thread separe
        new Thread() {
            public void run() {
                try {
                    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                    String line = "";
                    try {
                        while ((line = reader.readLine()) != null) {
                        }
                    } finally {
                        reader.close();
                    }
                } catch (IOException ioe) {
                }
            }
        }.start();
 
        // Consommation de la sortie d'erreur de l'application externe dans un Thread separe
        new Thread() {
            public void run() {
                try {
                    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
                    String line;
                    try {
                        while ((line = reader.readLine()) != null) {
                        }
                    } finally {
                        reader.close();
                    }
                } catch (IOException ioe) {
                }
            }
        }.start();
    }
Appelons la seconde application B. C'est un micro-service SpringBoot qui est censé être autonome et continuer même si A s’arrête (ce qui n'est pas censé arriver).
je précise que l’exécution se passe à merveille.

Jusqu'ici, tout va pour le mieux dans le meilleur des mondes. Les problèmes interviennent si l'utilisateur s'amuse à stopper A alors que B tourne encore.
Dans ce cas là, il est impossible de relancer A. Je clique sur l'icone et rien ne se passe.
Si je quitte B, A se relance sans problème.

Je suis ouvert à toutes les suggestions car je galère depuis hier et ça me rend