Правильно завершите приложение командной строки Java - PullRequest
8 голосов
/ 17 сентября 2010

Мне просто интересно.Нужно ли вызывать System.exit(0); прямо перед main методом приложения командной строки Java?Если так, то почему?В чем разница с тем, чтобы позволить ему выйти самостоятельно, если бы я всегда помещал туда 0?Что не убрано?

Заранее спасибо.

Ответы [ 2 ]

16 голосов
/ 17 сентября 2010

Нет!Вам не всегда нужно вызывать System.exit(0), чтобы завершить Java-программу.Если ваш код не породил поток, не являющийся демоном, приложение автоматически завершит работу после выполнения задачи основного потока.

Если ваш метод main приводит к порождению некоторого потока, не являющегося демоном, который все еще жив, выполняя некоторую обработку, пока ваш метод main достигнет конца, то приложение не будет завершено, пока эти потоки не завершатся.В этом случае, если вы явно позвоните System.exit(0), приложение немедленно прекратит работу, уничтожив все ваши потоки.

Пожалуйста, укажите javadoc of Thread , в котором упоминаются подробности.

2 голосов
/ 17 сентября 2010

Не нужно звонить System.exit(), просто вернитесь с main().Это нормальная идиома для выхода из Java-программы.

System.exit() обычно вызывается для завершения приложения в середине (что обычно означает ненормальное завершение из-за фатальной ошибки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...