Какой лучший способ выйти из приложения Java с кодом?
Как выйти из приложения Java из программы
Ответ 1
Вы можете использовать System.exit()
для этой цели.
Согласно документации oracle Java 8:
public static void exit(int status)
Завершает работу запущенной виртуальной машины Java. Аргумент служит в качестве кода состояния; по соглашению, ненулевой код состояния указывает на ненормальное завершение.
Этот метод вызывает метод exit в классе Runtime. Этот метод никогда не возвращается нормально.
Вызов
System.exit(n)
фактически эквивалентен вызову:
Runtime.getRuntime().exit(n)
Ответ 2
System.exit(0);
"0" позволяет любому, кто вызвал вашу программу, знать, что все прошло нормально. Если, однако, вы выходите из-за ошибки, вы должны System.exit(1);
или с другим ненулевым числом, соответствующим конкретной ошибке.
Кроме того, как говорили другие, сначала очистите! Это включает в себя закрытие файлов и других открытых ресурсов.
Ответ 3
System.exit(int i)
, но я бы включил его в более общий метод shutdown()
, где вы также включили бы шаги "очистки", закрыв соединения сокетов, дескрипторы файлов, а затем выйдя с помощью System.exit(x)
.
Ответ 4
System.exit()
обычно не самый лучший способ, но он зависит от вашего приложения.
Обычный способ завершения приложения - выйти из метода main()
. Это не работает, когда выполняются другие потоки не-deamon, как это обычно бывает для приложений с графическим интерфейсом пользователя (AWT, Swing и т.д.). Для этих приложений вы либо найдете способ закончить цикл событий GUI (не знаете, возможно ли это с помощью AWT или Swing), либо вызвать System.exit()
.
Ответ 5
Я согласен с Джоном, попросите ваше приложение отреагировать на что-то и вызовите System.exit().
Убедитесь, что:
- вы используете соответствующее значение выхода. 0 - нормальный выход, все остальное указывает на наличие ошибки
- вы закрываете все входные и выходные потоки. Файлы, сетевые подключения и т.д.
- вы регистрируете или печатаете причину выхода, особенно если ее из-за ошибки
Ответ 6
Использование dispose();
- очень эффективный способ закрытия ваших программ.
Я обнаружил, что использование System.exit(x)
сбрасывает область взаимодействий и предполагает, что вам нужна какая-то информация там, и все это исчезает.
Ответ 7
Ответ: System.exit(), но не очень хорошо, поскольку это прерывает программу. Любая очистка, уничтожение, которую вы намереваетесь сделать, не произойдет.
Ответ 8
Есть два простых ответа на вопрос.
Это "Профессиональный путь":
//This just terminates the program.
System.exit(0);
Это более неуклюже:
//This just terminates the program, just like System.exit(0).
return;
Ответ 9
Runtime.getCurrentRumtime().halt(0);
Ответ 10
System.exit(ПРЕРЫВАНИЕ); Выйдите из процесса немедленно.
Ответ 11
Это должно быть сделано правильно:
mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
mainFrame.addWindowListener(new WindowListener() {
@Override
public void windowClosing(WindowEvent e) {
if (doQuestion("Really want to exit?")) {
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.dispose();
}
}
Ответ 12
System.exit()
сделает то, что вы хотите. Но в большинстве ситуаций вы, вероятно, хотите выйти из потока и оставить основной поток живым. Делая это, вы можете завершить задачу, но также сохранить возможность запуска другой задачи без перезапуска приложения.