Reiniciar aplicação?

Opa! Alguém tem alguma idéia de como fazer para uma aplicação Java reiniciar? O que eu quero é que a aplicação se feche e se abra novamente. Será que tem como fazer isso na própria aplicação ou terei que criar outra pra ficar monitorando?

Acho melhor usar a alternativa b) (aplicação externa que monitora), até porque é difícil fazer uma aplicação “limpar” tudo que já usou, para então ser reiniciada.