Как выйти из приложения 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() сделает то, что вы хотите. Но в большинстве ситуаций вы, вероятно, хотите выйти из потока и оставить основной поток живым. Делая это, вы можете завершить задачу, но также сохранить возможность запуска другой задачи без перезапуска приложения.