Question

J'ai une application en java, où je tente de faire en sorte que l'un auditeur doit être appelé si quelqu'un sort des codes System.exit () dans le code, de faire des choses comme un message de journalisation et de libérer les ressources ...

Comment puis-je mettre en œuvre, toute suggestion / approche est la bienvenue.

Était-ce utile?

La solution

Le méthode Runtime.addShutdownHook peut être utilisé pour ajouter un crochet d'arrêt, qui est essentiellement un Thread Non Commencées, qui exécute à l'arrêt de la machine virtuelle Java.

Cependant, c'est un territoire qui doit être soigneusement la bande de roulement, car il est en cours d'exécution à un moment très sensible du cycle de vie de la machine virtuelle Java. De l'API Spécifications pour la méthode Runtime.addShutdownHook:

  

crochets d'arrêt fonctionnent à un moment délicat   dans le cycle de vie d'une machine virtuelle   et devrait donc être codé   défensivement. Ils devraient, en   particulier, être écrit pour être   thread-safe et éviter les blocages   dans la mesure du possible.

En tout état de cause, assurez-vous de lire un peu sur la façon dont les crochets d'arrêt de travail, car ils ne devraient probablement pas être abordés sans une bonne préparation. Assurez-vous de lire attentivement la spécification API pour la méthode Runtime.addShutdownHook.

Voici ce sont quelques articles que je trouve de la recherche d'informations pour cette réponse:

Autres conseils

La Runtime.addShutdownHook(Thread thehook) fonction vous permet d'enregistrer un crochet dans la machine virtuelle Java.
Le crochet fonctionne comme un fil initialisé mais Non Commencées, qui sera appelé par la machine virtuelle Java à la sortie. Si vous enregistrez plus d'un crochet, notez que l'ordre dans lequel les crochets sont appelés est indéfini.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top