bonjour
j'ai développé un programme en java utilisant javaexe, un programme annexe qui me permets de transformer mon programme java en service et d'avoir un icône dans la barre des tâches.
Mais ma question ne concerne pas cet aspect, ou peu : le problème est que lorsque je le "malmène" un peu (une ouverture, pas de confirmation que le service doit être lancé, et une deuxième ouverture suivie de la demande de fermeture de la première instance) ou peut-être même lorsque je l'utilise normalement (je dois réaliser des tests pour voir) après la fermeture j'ai un comportement bizarre : il ne se ferme pas (l'icône ne disparaît pas) et lorsque je lance le gestionnaire des tâches j'ai une dizaine, voire une vingtaine de processus ouverts en plus du service, et il s'en ouvre continuellement.
je crois que cela provient de la méthode appelée à la fermeture du service; la voici :
ma question est : savez-vous pourquoi il y a cette erreur? comment la corriger?
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 /** * 1.fermetures */ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // app app.flag_end = true; try { // oracle oracle.getConnexion().close(); } catch (SQLException e) { e.printStackTrace(); } try { // smstrend smstrend.cnx_close(); } catch (Exception e) { e.printStackTrace(); } try { // sqlite sqlite.connexion.close(); } catch (SQLException e) { e.printStackTrace(); } } }); /** * 2;exit */ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { Runtime runtime = Runtime.getRuntime(); try { runtime.exec("SMS2.exe -deleteService"); } catch (IOException e) { e.printStackTrace(); } } });
merci
olivier
Partager