Création de processus en cascade à la fermeture d'une application
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 :
Code:
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();
}
}
}); |
ma question est : savez-vous pourquoi il y a cette erreur? comment la corriger?
merci
olivier