|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 83 ![]() |
Bonjour,
J'ai une petite question : Si je veux intercepter l'arret de windows afin d'executer un bout de code java (thread) pour mettre au point une sorte de journal de connexion, vers quelles pistes je dois m'orienter ? J'ai vu un exemple en C++ mais en regardant le code, j'ai vu que c'etait pas possible de l'utiliser en JAVA (C++ à plus accès au système)... Merci par avance Edenyorke |
|
|
00
|
|
|
#2 |
![]() ![]() |
Effectivement! C'est pour cela que pour ce genre d'opérations, on passe par du code C++, que l'on invoque dans un programme java via JNI.
__________________
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 83 ![]() |
Il doit bien exister une solution purement java je pense, enfin j'espere !
|
|
|
00
|
|
|
#4 |
![]() ![]() |
Non: il n'existe pas de solution purement java pour détecter l'arrêt de Windows.
__________________
|
|
00
|
|
|
#5 | |
|
Membre confirmé
![]() Développeur informatique Inscription : avril 2003 Messages : 312 ![]() |
Citation:
* : j'ai vu beaucoup de personnes cracher sur ce fait mais en programmant intelligemment (et je ne parle pas de petites applications), java est parfaitement portable |
|
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 83 ![]() |
L'arrêt d'un systeme d'exploitation est logiquement propre au système d'exploitation, même en codant intelligement ca reste comme même très spécifique.
j'ai trouvé une solution purement java qui permet de "capter" l'arret de la JVM et d'executer du code avant l'arret de celle-ci et une JVM est bien multi-plateforme. |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() |
Tu peux détailler ta solution, car sous windows, ou même d'autre OS, je doute qu'un shutdown du system puisse être bloqué par du code exécuter avant la terminaison de celle-ci. Cela engendrerait un gros problème de sécurité...
PS : cela dit, windows étant tellement laxiste - pour ne pas dire totalement ignorant - en terme de sécurité, pourquoi pas... [EDIT] Je pense à cela en mettant un "while(true);" dans ce fameux code... Ce qui obligerait à débrancher la prise... |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Inscription : septembre 2007 Messages : 282 ![]() |
peut-être a-t-il trouvé des informations sur les shutdown Hook
|
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 83 ![]() |
Voici un detail de la solution ca n'est pas de moi.
Le but est de detecter les signaux SIGTERM et SIGINT. Si vous executez ce code dans un terminal et si vous le quittez, le message "Shutting down database..." apparaitra. Ca n'est pas parfait puisque ca ne fonctionne pas à l'arret de windows mais c'est deja un début. je cherche des infos sur les signaux envoyés par windows lors de son arrêt. Code :
SIGTERM c'est le message envoyé lors d'une fermeture avec la croix Il suffit peut être de trouver le bon signal... |
||
|
|
00
|
|
|
#10 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 83 ![]() |
Voici le code complet et qui fonctionne parfaitement lors de l'arrêt de windows
Code :
|
||
|
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 83 ![]() |
Bonjour,
Je me permet de reouvrir ce post car je me trouve face à un problème en relation avec la discussion. Le code que j'ai trouvé pour intercepter l'arret de windows marche très bien... je l'utilise pour envoyer un message de log vers un serveur via WS lorsque l'utilisateur arrête sa machine avec le bouton d'arrêt. Le problème c'est que ce code fonctionne uniquement sous IDE En effet si j'appui sur le bouton d'arrêt de ma machine et que je suis sous eclipse, il y a bien un message envoyé vers le serveur et l'arrêt de windows se fait correctement. A l'inverse si j'utilise Java Web Start et que j'appui sur le bouton d'arrêt, j'ai une belle WebserviceException qui me fait comprendre que le serveur est inaxessible. J'aimerai donc savoir si par hasard il existe une solution pour : - Soit annuler l'arrêt de windows (pour le faire manuellement par la suite) - Soit changer l'ordre d'arret des processus (pour mettre la jvm en dernier) Merci par avance Edenyorke |
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : juin 2007 Messages : 44 ![]() |
Voici une sorte de FAQ sur le sujet proposée par Sun
http://java.sun.com/j2se/1.4.2/docs/...ok-design.html |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 253 ![]() |
De plus, une application webstart n'a pas tous les mêmes droits qu'une application stand-alone. Peut-être que la gestion des Hooks en fait partie ?
|
|
|
00
|
|
|
#14 |
|
Membre habitué
![]() Inscription : décembre 2002 Messages : 133 ![]() |
Il est possible dans Windows d'exécuter des scripts au démarrage et à l'extension du système. Est ce que ce genre de chose résoudrait ton problème ?
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() Inscription : mai 2004 Messages : 1 253 ![]() |
... à l'extension du système ? Ca veut dire quoi, ça ? oO
|
|
|
00
|
|
|
#16 |
|
Membre habitué
![]() Inscription : décembre 2002 Messages : 133 ![]() |
Au temps pour moi , c'était "EXTINCTION" que je voulais dire, sinon effectivement ça veut rien dire !
|
|
|
00
|
|
|
#17 | |
![]() ![]() |
Citation:
C'est fou qu'on puisse faire ça sous java Très intéressant! F.
__________________
Développeur Java / Flex à Shanghai, Chine mes publications Mon dernier tutoriel : Messages Quit IRC : explications La rubrique IRC recrute des redacteurs : contactez moi Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE] |
|
|
|
00
|
|
|
#18 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 4 ![]() |
sinon sans faire appel à java si par malheur tu éteins ton windows fait rapidément Windows+R(sur le clavier
|
|
|
00
|
|
|
#19 | |
|
Membre Expert
![]() ![]() Inscription : novembre 2005 Messages : 1 187 ![]() |
Citation:
Ces packages ne sont pas nécessairement présents sur d'autres Jvms telles celle d'IBM par exemple.
__________________
We are facing a dangerous period ahead. If we do not stop, correct and change some of these wrongdoings, now, we are all going to suffer. Either things that we make will overtake us, or nature will take over. Earthquake, flood, rain, severe drought, severe winter, lightning destruction, great wind destruction; These things will warn us that we are not following the law of the great spirit. Extrait du documentaire Broken Rainbow (1985) |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com