Hola,
Si cortas un programa por lo sano, el destroy() y/o los metodos del ciclo de vida no se ejecutan.
Lo unico que quiza te pudiera servir son los "shutdown hooks", que son clases especiales que se ejecutan antes de que la JVM se muera.
Mas información, por ejemplo, aqui:
http://java.sun.com/developer/TechTips/2000/tt0711.html
Saludos