Завершает текущую запущенную виртуальную машину Java. Аргумент служит кодом состояния; условно, ненулевой код состояния указывает на ненормальное завершение .
Этот метод вызывает метод выхода в классе Runtime. Этот метод никогда не возвращается нормально.
«0» позволяет любому, кто вызвал вашу программу, знать, что все прошло нормально. Однако, если вы выходите из-за ошибки, вы должны System.exit(1);или с другим ненулевым числом, соответствующим конкретной ошибке.
Кроме того, как уже упоминали другие, очистить в первую очередь! Это включает закрытие файлов и других открытых ресурсов.
Как утверждает Крис System.exit(1)(или любой другой номер), если вы хотите указать, что он закрыт из-за ошибки. System.exit(0)указывает на то, что программа закрылась нормально. Вы также можете изменить 1 на любое число, которое вам нравится, тогда, когда вы запускаете приложение из скрипта, вы можете определить, произошла ли ошибка.
StormPooper
10
System.exit(int i)должен использоваться, но я бы включил его в более общий shutdown()метод, в который вы также включили бы этапы «очистки», закрытие соединений с сокетами, файловые дескрипторы, а затем выход с помощью System.exit(x).
System.exit() обычно это не лучший способ, но это зависит от вашего приложения.
Обычный способ завершить приложение - выйти из main()метода. Это не работает, когда работают другие потоки не-deamon, как обычно для приложений с графическим интерфейсом пользователя (AWT, Swing и т. Д.). Для этих приложений вы либо находите способ завершить цикл обработки событий GUI (не знаю, возможно ли это с помощью AWT или Swing), либо вызываете System.exit().
С помощью dispose(); - очень эффективный способ закрытия ваших программ.
Я обнаружил, что при использовании System.exit(x)сбрасывает панель взаимодействий и, предположив, что вам нужна некоторая информация, все это исчезает.
Ответ - System.exit (), но это не очень хорошая вещь, так как это прерывает программу. Никакой очистки, уничтожения, которую вы намерены сделать, не произойдет.
System.exit(0); return;это тоже хорошо, возврат предотвращает запуск любого кода рутера до того, как система может выйти, иначе вам понадобится флаг (..i.e. if (!called_exit) { further code after exit statement }
Лучше: Runtime.getRuntime (). Halt (0); Отлично сработало для меня в Scala!
Герхард Хагерер
@GerhardHagerer, но что, если ты получишь не текущие рунти, я?
Чувак Бро
1
Из Javadoc для halt: «Этот метод должен использоваться с особой осторожностью. В отличие от exitметода, этот метод не вызывает запуска ловушек завершения работы и не запускает непроверенные финализаторы, если включена финализация при выходе. Если последовательность выключения имеет уже запущен, тогда этот метод не ожидает, пока какие-либо запущенные обработчики завершения работы или финализаторы завершат свою работу. " Короче говоря, вам не нужно использовать halt, вы должны предпочитать exit.
Эрвин Болвидт
-1
System.exit()будет делать то, что вы хотите. Но в большинстве случаев вы, вероятно, захотите выйти из потока и оставить основной поток живым. Делая это, вы можете завершить задачу, а также сохранить возможность запуска другой задачи без перезапуска приложения.
Ответы:
Вы можете использовать
System.exit()
для этой цели.Согласно документации Oracle 8 к Java:
источник
«0» позволяет любому, кто вызвал вашу программу, знать, что все прошло нормально. Однако, если вы выходите из-за ошибки, вы должны
System.exit(1);
или с другим ненулевым числом, соответствующим конкретной ошибке.Кроме того, как уже упоминали другие, очистить в первую очередь! Это включает закрытие файлов и других открытых ресурсов.
источник
System.exit(1)
(или любой другой номер), если вы хотите указать, что он закрыт из-за ошибки.System.exit(0)
указывает на то, что программа закрылась нормально. Вы также можете изменить 1 на любое число, которое вам нравится, тогда, когда вы запускаете приложение из скрипта, вы можете определить, произошла ли ошибка.System.exit(int i)
должен использоваться, но я бы включил его в более общийshutdown()
метод, в который вы также включили бы этапы «очистки», закрытие соединений с сокетами, файловые дескрипторы, а затем выход с помощьюSystem.exit(x)
.источник
System.exit()
обычно это не лучший способ, но это зависит от вашего приложения.Обычный способ завершить приложение - выйти из
main()
метода. Это не работает, когда работают другие потоки не-deamon, как обычно для приложений с графическим интерфейсом пользователя (AWT, Swing и т. Д.). Для этих приложений вы либо находите способ завершить цикл обработки событий GUI (не знаю, возможно ли это с помощью AWT или Swing), либо вызываетеSystem.exit()
.источник
С помощью
dispose();
- очень эффективный способ закрытия ваших программ.Я обнаружил, что при использовании
System.exit(x)
сбрасывает панель взаимодействий и, предположив, что вам нужна некоторая информация, все это исчезает.источник
Я согласен с Джоном, чтобы ваше приложение реагировало на что-то и вызывало System.exit ().
Будьте уверены, что:
источник
Ответ - System.exit (), но это не очень хорошая вещь, так как это прерывает программу. Никакой очистки, уничтожения, которую вы намерены сделать, не произойдет.
источник
Есть два простых ответа на вопрос.
Это «Профессиональный путь»:
Это более неуклюжий способ:
источник
System.exit(0); return;
это тоже хорошо, возврат предотвращает запуск любого кода рутера до того, как система может выйти, иначе вам понадобится флаг (..i.e. if (!called_exit) { further code after exit statement }
источник
halt
: «Этот метод должен использоваться с особой осторожностью. В отличие отexit
метода, этот метод не вызывает запуска ловушек завершения работы и не запускает непроверенные финализаторы, если включена финализация при выходе. Если последовательность выключения имеет уже запущен, тогда этот метод не ожидает, пока какие-либо запущенные обработчики завершения работы или финализаторы завершат свою работу. " Короче говоря, вам не нужно использоватьhalt
, вы должны предпочитатьexit
.System.exit()
будет делать то, что вы хотите. Но в большинстве случаев вы, вероятно, захотите выйти из потока и оставить основной поток живым. Делая это, вы можете завершить задачу, а также сохранить возможность запуска другой задачи без перезапуска приложения.источник
System.exit (ПРЕРЫВАНИЕ); Выйти из процесса немедленно.
источник
Это должно сделать это правильно:
источник