Який найкращий спосіб вийти з програми Java з кодом?
Який найкращий спосіб вийти з програми Java з кодом?
Відповіді:
Ви можете використовувати System.exit()для цієї мети.
Згідно з документацією Java 8 для Oracle:
public static void exit(int status)Припиняє діючу на даний момент віртуальну машину Java. Аргумент служить кодом статусу; за умовою, ненульовий код статусу вказує на аномальне припинення .
Цей метод викликає метод виходу в клас Runtime. Цей метод ніколи не повертається нормально.
Виклик
System.exit(n)фактично еквівалентний виклику:
Runtime.getRuntime().exit(n)
System.exit(0);
"0" дає можливість усім, хто назвав вашу програму, знати, що все пішло нормально. Якщо ви все-таки закриваєтесь через помилку, ви повинні System.exit(1);або з іншим ненульовим номером, що відповідає конкретній помилці.
Також, як уже згадували інші, спочатку очистіть! Це включає закриття файлів та інших відкритих ресурсів.
System.exit(1)(або будь-яке інше число), якщо ви хочете вказати, що він закрився через помилку. System.exit(0)вказує на те, що програма нормально закрита. Ви також можете змінити 1 на будь-яке вподобане вам число, тоді, коли ви запускаєте заявку зі сценарію, ви можете визначити, чи сталася помилка.
System.exit() зазвичай це не найкращий спосіб, але це залежить від вашої заявки.
Звичайний спосіб закінчення заявки - це вихід із main()методу. Це не працює, якщо виконуються інші недеманові потоки, як це зазвичай застосовується для програм із графічним інтерфейсом користувача (AWT, Swing тощо). У цих програмах ви або знайдете спосіб закінчити цикл подій GUI (не знаю, чи це можливо за допомогою AWT або Swing), або зателефонуйте System.exit().
Я погоджуюся з Джоном, щоб ваша програма на щось реагувала і дзвонила System.exit ().
Будьте впевнені, що:
Відповідь System.exit (), але це не дуже добре, оскільки це перериває програму. Будь-яке прибирання, знищення, що ви маєте намір зробити, не відбудеться.
Є два прості відповіді на питання.
Це "Професійний шлях":
//This just terminates the program.
System.exit(0);
Це більш незграбний спосіб:
//This just terminates the program, just like System.exit(0).
return;
System.exit(0); return;також добре, що повернення запобігає запуску будь-якого маршрутизатора до того, як система може вийти, інакше вам знадобиться прапор (..i.e. if (!called_exit) { further code after exit statement }
Runtime.getCurrentRumtime().halt(0);
halt: "Цей метод слід застосовувати з особливою обережністю. На відміну від exitметоду, цей метод не спричиняє запускання гачків відключення і не запускає незакликані фіналізатори, якщо фіналізація на виїзді увімкнена. Якщо послідовність відключення має вже розпочато, тоді цей метод не чекає, коли якісь запущені гачки відключення чи фіналізатори закінчать свою роботу ". Коротше кажучи, вам не потрібно використовувати halt, вам слід віддати перевагу exit.
System.exit()зробить те, що ти хочеш. Але в більшості ситуацій, ймовірно, ви хочете вийти з потоку і залишити основну нитку живою. Роблячи це, ви можете скасувати завдання, але також зберегти можливість запустити інше завдання без перезавантаження програми.
Це слід зробити правильним чином:
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();
}
}