Encerra a Java Virtual Machine em execução no momento. O argumento serve como um código de status; por convenção, um código de status diferente de zero indica encerramento anormal .
Este método chama o método de saída na classe Runtime. Este método nunca retorna normalmente.
A chamada System.exit(n)é efetivamente equivalente à chamada:
O "0" permite que quem ligou para o seu programa saiba que tudo deu certo. Se, no entanto, você estiver encerrando devido a um erro, deverá System.exit(1);ou com outro número diferente de zero correspondente ao erro específico.
Além disso, como outros já mencionaram, limpe primeiro! Isso envolve o fechamento de arquivos e outros recursos abertos.
Como afirma Chris, System.exit(1)(ou qualquer outro número) é se você deseja indicar que ele foi fechado devido a um erro. System.exit(0)indica que o programa foi fechado normalmente. Você também pode alterar 1 para qualquer número que desejar e, ao executar seu aplicativo a partir de um script, é possível determinar se houve um erro.
StormPooper 24/11/11
10
System.exit(int i)deve ser usado, mas eu o incluiria dentro de um shutdown()método mais genérico , no qual você também incluiria etapas de "limpeza", fechando conexões de soquete, descritores de arquivo e saindo com System.exit(x).
System.exit() geralmente não é o melhor caminho, mas depende da sua aplicação.
A maneira usual de finalizar um aplicativo é sair do main()método. Isso não funciona quando há outros threads que não são daemon em execução, como é usual para aplicativos com uma interface gráfica do usuário (AWT, Swing etc.). Para esses aplicativos, você encontra uma maneira de terminar o loop de eventos da GUI (não sabe se isso é possível com o AWT ou o Swing) ou invoca System.exit().
A resposta é System.exit (), mas não é uma boa coisa a fazer, pois isso interrompe o programa. Qualquer limpeza, destruição que você pretende fazer não acontecerá.
System.exit(0); return;também é bom, o retorno impede que qualquer código rotineiro seja executado antes que o sistema possa sair, caso contrário você precisaria de um sinalizador (..i.e. if (!called_exit) { further code after exit statement }
Melhor: Runtime.getRuntime (). Halt (0); Funcionou perfeitamente para mim no Scala!
Gerhard Hagerer
@GerhardHagerer mas e se você receber o runti não atual, eu?
Cara Bro
1
Do Javadoc para halt: "Este método deve ser usado com extrema cautela. Ao contrário do exitmétodo, este método não faz com que ganchos de desligamento sejam iniciados e não executa finalizadores não solicitados se a finalização na saída estiver ativada. Se a sequência de desligamento tiver sido ativada. já iniciado, esse método não espera que nenhum gancho ou finalizador de encerramento em execução termine seu trabalho ". Em suma, você não deve usar halt, você deve preferir exit.
Erwin Bolwidt
-1
System.exit()fará o que você quiser. Mas na maioria das situações, você provavelmente deseja sair de um encadeamento e deixar o encadeamento principal ativo. Ao fazer isso, você pode encerrar uma tarefa, mas também manter a capacidade de iniciar outra tarefa sem reiniciar o aplicativo.
Respostas:
Você pode usar
System.exit()
para esse fim.De acordo com a documentação Java 8 da Oracle:
fonte
O "0" permite que quem ligou para o seu programa saiba que tudo deu certo. Se, no entanto, você estiver encerrando devido a um erro, deverá
System.exit(1);
ou com outro número diferente de zero correspondente ao erro específico.Além disso, como outros já mencionaram, limpe primeiro! Isso envolve o fechamento de arquivos e outros recursos abertos.
fonte
System.exit(1)
(ou qualquer outro número) é se você deseja indicar que ele foi fechado devido a um erro.System.exit(0)
indica que o programa foi fechado normalmente. Você também pode alterar 1 para qualquer número que desejar e, ao executar seu aplicativo a partir de um script, é possível determinar se houve um erro.System.exit(int i)
deve ser usado, mas eu o incluiria dentro de umshutdown()
método mais genérico , no qual você também incluiria etapas de "limpeza", fechando conexões de soquete, descritores de arquivo e saindo comSystem.exit(x)
.fonte
System.exit()
geralmente não é o melhor caminho, mas depende da sua aplicação.A maneira usual de finalizar um aplicativo é sair do
main()
método. Isso não funciona quando há outros threads que não são daemon em execução, como é usual para aplicativos com uma interface gráfica do usuário (AWT, Swing etc.). Para esses aplicativos, você encontra uma maneira de terminar o loop de eventos da GUI (não sabe se isso é possível com o AWT ou o Swing) ou invocaSystem.exit()
.fonte
O uso
dispose();
é uma maneira muito eficaz de fechar seus programas.Descobri que o uso
System.exit(x)
redefine o painel de interações e, supondo que você precise de algumas informações, tudo desaparece.fonte
Concordo com Jon, faça com que seu aplicativo reaja a algo e chame System.exit ().
Tenha certeza disso:
fonte
A resposta é System.exit (), mas não é uma boa coisa a fazer, pois isso interrompe o programa. Qualquer limpeza, destruição que você pretende fazer não acontecerá.
fonte
Há duas respostas simples para a pergunta.
Esta é a "maneira profissional":
Esta é uma maneira mais desajeitada:
fonte
System.exit(0); return;
também é bom, o retorno impede que qualquer código rotineiro seja executado antes que o sistema possa sair, caso contrário você precisaria de um sinalizador (..i.e. if (!called_exit) { further code after exit statement }
fonte
halt
: "Este método deve ser usado com extrema cautela. Ao contrário doexit
método, este método não faz com que ganchos de desligamento sejam iniciados e não executa finalizadores não solicitados se a finalização na saída estiver ativada. Se a sequência de desligamento tiver sido ativada. já iniciado, esse método não espera que nenhum gancho ou finalizador de encerramento em execução termine seu trabalho ". Em suma, você não deve usarhalt
, você deve preferirexit
.System.exit()
fará o que você quiser. Mas na maioria das situações, você provavelmente deseja sair de um encadeamento e deixar o encadeamento principal ativo. Ao fazer isso, você pode encerrar uma tarefa, mas também manter a capacidade de iniciar outra tarefa sem reiniciar o aplicativo.fonte
System.exit (ABORT); Sair é o processo imediatamente.
fonte
Isso deve ser feito da maneira correta:
fonte