Bonjour,
j'aurai voulu savoir si il était possible d'intercepter le CTRL+C lorsqu'un programme Java est lancé directement en ligne de commande pour éviter l'interruption brutale du processus.
Bonjour,
j'aurai voulu savoir si il était possible d'intercepter le CTRL+C lorsqu'un programme Java est lancé directement en ligne de commande pour éviter l'interruption brutale du processus.
Salut,
Regarde du coté de Runtime.addShutdownHook()...
a++
Merci pour ta reponse express. C'est exactement ce que je cherchais.
Salut j'ai plus ou moins la même requête, et le ShutdownHook n'est pas satisfaisant puisqu'on ne peut pas empêcher la fermeture de la jvm avec le ShutdownHook.
De plus il me semble qu'il n'y a pas moyen de connaitre le signal recu non ?
Finalement j'ai trouvé une solution, je pense qu'elle ne marche pas avec toutes les versions de jvm car j'ai trouvé des solutions différentes qui ne fonctionnaient pas en 1.6, mais celle là est la bonne pour 1.6 :
avec ce code je récupère le SIGINT et je peux empêcher mon programme de s'arrêter lorsqu'on le recoit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 sun.misc.Signal.handle(new sun.misc.Signal("INT"), new sun.misc.SignalHandler() { public void handle(sun.misc.Signal sig) { // faire un truc avec le signal } });
A noter que sun.misc.Signal.handle() renvoit en retour le SignalHandler qui gérait ce signal auparavant que l'on peut récupérer si on veut par exemple chainer les SignalHandler
kpouer >>
Salut,
peux-tu me dire où trouver sun.misc s'il te plait car j'ai beau cherché je ne trouve aucun téléchargement pour utiliser cette API et ce fameux SignalHandler.
J'ai bien un sun.misc (certainement inclus avec la jvm) sur ma bécane mais il n'y a rien dedans apparemment.
Merci
Partager