Enterrer un System.exit(x) ? - Java - Programmation
Marsh Posté le 22-09-2007 à 00:18:00
Une solution un peu crade mais possible (depend de ce que tu veux faire) serait d'utiliser une thread que tu hook à la JVM, si la thread hooké est lancée c'est que il y a eut un System.exit(). Donc tu peux faire tes trucs avant l'arrêt complet.
Sinon tu décompile la classe qui fait le system.exit et tu modifie le code ...
Voir addShutdownHook(Thread hook) dans la classe Runtime : http://java.sun.com/javase/6/docs/ [...] ntime.html
Marsh Posté le 23-09-2007 à 00:39:45
ou tu te fais ton security manager aux petits oignons pour ca.
Marsh Posté le 27-09-2007 à 10:43:33
Merci beaucoup de vos réponses !!
La décompilation avec JAD, j'y ai pensé, mais le problème est que ce fournisseur fait des mises à jour fréquentes, et que j'aimerais éviter de devoir refaire l'opération à chaque fois.
Pour le shutdownhook, si j'ai bien compris la doc, je pourrais faire des traitements supplémentaires, mais la mort de la JVM est inéluctable...
Je vais chercher dans le coin du security manager, qui semble prometteur !!!
Marsh Posté le 20-09-2007 à 14:06:03
Bonjour,
J'utilise une API java (dont je n'ai pas les sources).
Mes valeureux fournisseurs ont inclu un system.exit dans leur code, qui bien évidemment (c'est son rôle) fait tomber toute mon appli.
Existe-t-il un moyen, même tordu, de le "catcher", pour pouvoir le traiter comme une exception?
Je n'y crois pas trop ... mais on ne sait jamais, certains ont l'air d'avoir pas mal d'expérience ici!