Inicializacao x reinicializacao sistema

Pessoal, estou terminando o desenvolvimento de um aplicativo java desktop e estou com alguns problemas na implementacao da inicializacao e reinicializacao.
Na inicializacao, hoje tenho uma classe main que exibe um splash, carrega todos os meus servicos, threads, Pool de conexoes, log, etc… depois de carregar todos os servicos a classe main fecha o splash e exibe meu JFrame principal. Isso esta funcionando perfeitamente.
Agora estou precisando reinicializar o aplicativo em tempo de execucao e ainda nao cheguei a uma conclusao de como fazer isso. O processo é o mesmo de uma atualizacao de anti-virus, o aplicativo pega as atualizacoes e reinicializa. Alguem pode me dar uma ideia de como fazer isso ?

Gustavo

Seria legal se vc conseguize finalizar todos os acessos sem precisar finalizar o instanci ana JVM.

Eu faria o seguinde: encerraria minhas conexoes com banco, THreads, pool, tudo. Fechava a janela ( instancia ) e abria uma nova instancia da aplicação.
Desde que vc não de um System.exit(0), acho que vc consegue,

Outra forma seria vc iniciar outra jvm pra abrir o programa e encerrar a q vc esta. Mas dependendo de como é sua aplicação, acho que ficaria meio complicado.

:wink: