(Duvida) Criando esquema de Update numa aplicação Console

Tenho uma aplicação que roda através de Console, necessariamente por que executa rotinas em servidores, que necessariamente podem não ter uma interface gráfica, a chamada é feita para o app.jar que exibe um menu dos/shell com algumas opções. Eu gostaria de acrescentar uma opção na qual eu baixe um outro.jar e que após baixado esse outro.jar, seja apagado o app.jar e renomeado o outro.jar para app.jar, ou seja, um esquema de update…
Porem, estando levantado o app.jar levantando, não é possivel deleta-lo ou renomea-lo, pensei em criar um update.jar que seja chamado pelo app.jar, assim fecho o app.jar, executo as funções de download e operações de arquivo com o update.jar e depois o update.jar fecha-se e levanta o app.jar (arquivo outro.jar baixado e renomeado). NÃO SEI COMO IMPLEMENTAR ESSA LÓGICA por conta dessas chamadas, como sair desse app.jar, chamar o update.jar e fechar o app.jar para retirar o lock desse arquivo que será renomeado?