Как выйти из Java-приложения из программы - PullRequest
137 голосов
/ 20 апреля 2010

Как лучше всего выйти из приложения Java с кодом?

Ответы [ 12 ]

183 голосов
/ 20 апреля 2010

Вы можете использовать System.exit() для этой цели.

Согласно документации Oracle 8 к Java:

public static void exit(int status)

Завершает работающую в данный момент виртуальную машину Java. Аргумент служит кодом состояния; условно, ненулевой код состояния указывает на ненормальное завершение Этот метод вызывает метод выхода в классе Runtime. Этот метод никогда не возвращается нормально.

Вызов System.exit(n) фактически эквивалентен вызову:

Runtime.getRuntime().exit(n)

98 голосов
/ 20 апреля 2010
System.exit(0);

"0" позволяет любому, кто вызвал вашу программу, знать, что все прошло нормально. Однако, если вы выходите из-за ошибки, вы должны System.exit(1); или с другим ненулевым числом, соответствующим конкретной ошибке.

Кроме того, как уже упоминали другие, сначала приберитесь! Это включает закрытие файлов и других открытых ресурсов.

10 голосов
/ 20 апреля 2010

System.exit(int i) должен использоваться, но я бы включил его в более общий метод shutdown(), в который вы также включили бы этапы "очистки", закрытие соединений сокетов, файловые дескрипторы, затем выход с System.exit(x).

5 голосов
/ 20 апреля 2010

System.exit() обычно не лучший способ, но это зависит от вашего приложения.

Обычный способ завершить приложение - выйти из метода main(). Это не работает, когда работают другие потоки не-deamon, как обычно для приложений с графическим интерфейсом пользователя (AWT, Swing и т. Д.). Для этих приложений вы либо найдете способ завершить цикл обработки событий GUI (не знаю, возможно ли это с помощью AWT или Swing), либо вызвать System.exit().

3 голосов
/ 17 июня 2011

Использование dispose(); - очень эффективный способ закрытия ваших программ.

Я обнаружил, что использование System.exit(x) сбрасывает панель взаимодействий и, предположив, что вам нужна некоторая информация, все это исчезает.

3 голосов
/ 20 апреля 2010

Я согласен с Джоном, пусть ваше приложение реагирует на что-то и вызывает System.exit ().

Убедитесь, что:

  • вы используете соответствующее значение выхода. 0 - нормальный выход, все остальное указывает на ошибку
  • Вы закрываете все потоки ввода и вывода. Файлы, сетевые подключения и т. Д.
  • вы регистрируете или печатаете причину выхода, особенно если это из-за ошибки
1 голос
/ 27 июля 2015

На вопрос есть два простых ответа.

Это «Профессиональный путь»:

//This just terminates the program.
System.exit(0);

Это более неуклюжий способ:

//This just terminates the program, just like System.exit(0).
return;
1 голос
/ 05 октября 2012
Runtime.getCurrentRumtime().halt(0);
1 голос
/ 20 апреля 2010

Ответ - System.exit (), но это не очень хорошая вещь, так как это прерывает программу. Никакой очистки, уничтожения, которую вы намереваетесь сделать, не произойдет.

0 голосов
/ 13 октября 2017

System.exit() будет делать то, что вы хотите. Но в большинстве ситуаций вы, вероятно, захотите выйти из потока и оставить основной поток живым. Делая это, вы можете завершить задачу, но также можете запускать другую задачу без перезапуска приложения.

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