Melhor maneira de desligar de forma graciosa um programa de linha de comando Java

Estou interessado em diferentes abordagens para encerrar um programa de linha de comando Java. Enviar um sinal de morte não é uma opção.

Eu posso pensar em algumas abordagens diferentes.

Abra uma porta e espere por uma conexão. Quando um é feito, graciosamente desligado.Preste atenção para que um arquivo seja criado e, em seguida, encerre.Leia alguma entrada do terminal, como "executar o desligamento".

O terceiro não é o ideal, já que muitas vezes há saída de programa bombeada para a tela. O primeiro leva muito esforço (eu sou preguiçoso). A maioria dos programadores usa a segunda opção? Se não, o que mais é possível / elegante / simples?

questionAnswers(7)

yourAnswerToTheQuestion