Empêcher le lancement de plusieurs instances d'une application Java

Je veux éviter à l'utilisateur de l'exécution de mon application java plusieurs fois en parallèle.

Pour éviter cela, j'ai créé un fichier de verrouillage quand suis-ouverture de l'application, et de supprimer le fichier de verrouillage lors de la fermeture de l'application.

Lorsque l'application est en cours d'exécution, vous ne pouvez pas ouvrir un autre exemple de la jarre. Toutefois, si vous tuez l'application via le gestionnaire des tâches, la fenêtre de l'événement de clôture de la demande n'est pas déclenché et le verrouillage de fichier n'est pas supprimé.

Comment puis-je m'assurer que le fichier de verrouillage méthode qui fonctionne (ou d'un autre mécanisme pourrais-je utiliser?

source d'informationauteur Sathish