Какой лучший способ выйти из приложения Java с кодом?
user445584 19 апр ’10 в 21:15 2010-04-19 21:15
2010-04-19 21:15
12 ответов
Ты можешь использовать System.exit() для этого.
Согласно документации Oracle 8 к Java:
public static void exit(int status)
Завершает текущую запущенную виртуальную машину Java. Аргумент служит кодом состояния; условно, ненулевой код состояния указывает на ненормальное завершение.
Этот метод вызывает метод выхода в классе Runtime. Этот метод никогда не возвращается нормально.
Вызов System.exit(n) эффективно эквивалентно вызову:
Runtime.getRuntime().exit(n)
user82865 19 апр ’10 в 21:16 2010-04-19 21:16
2010-04-19 21:16
System.exit(0);
«0» позволяет любому, кто вызвал вашу программу, знать, что все прошло нормально. Однако, если вы выходите из-за ошибки, вам следует System.exit(1); или с другим ненулевым числом, соответствующим конкретной ошибке.
Кроме того, как уже упоминали другие, очистить в первую очередь! Это предполагает закрытие файлов и других открытых ресурсов.
№14 Java c нуля. Выход из циклов Break. Возврат управления |для новичков | Java с нуля | #Java | #1С
user300807 19 апр ’10 в 21:20 2010-04-19 21:20
2010-04-19 21:20
System.exit(int i) должен быть использован, но я бы включил его в более общий shutdown() метод, в котором вы также включили бы этапы «очистки», закрытие соединений сокетов, дескрипторы файлов, а затем выход с System.exit(x) ,
user316198 20 апр ’10 в 01:55 2010-04-20 01:55
2010-04-20 01:55
System.exit() обычно это не лучший способ, но это зависит от вашего приложения.
Обычный способ завершить приложение — выйти из main() метод. Это не работает, когда работают другие потоки не-deamon, как обычно для приложений с графическим интерфейсом пользователя (AWT, Swing и т. Д.). Для этих приложений вы либо найдете способ завершить цикл обработки событий GUI (не знаю, возможно ли это с помощью AWT или Swing), либо вызвать System.exit() ,
Источник: stackru.com
Как выйти из Java-приложения из программы
public static void exit(int status) Завершает работу текущей виртуальной машины Java. Аргумент служит кодом состояния; по соглашению ненулевой код состояния указывает на аварийное завершение. Этот метод вызывает метод выхода в классе Runtime. Этот метод никогда не возвращает нормально. Вызов System.exit(n) фактически эквивалентен вызову: Runtime.getRuntime().exit(n)
person Jon schedule 19.04.2010
System.exit(0);
«0» дает знать, кто звонил в вашу программу, что все прошло нормально. Если, однако, вы выходите из-за ошибки, вам следует System.exit(1); или с другим ненулевым числом, соответствующим конкретной ошибке. Кроме того, как уже упоминали другие, сначала очистите! Это включает в себя закрытие файлов и других открытых ресурсов.
person Chris Cooper schedule 19.04.2010
Я думал, что это System.exit (1)? — person AFK; 20.04.2010
Intellij idea 2: Создание и запуск приложения
Как утверждает Крис, System.exit(1) (или любое другое число) означает, что вы хотите указать, что он закрыт из-за ошибки. System.exit(0) указывает, что программа закрылась нормально. Вы также можете изменить 1 на любое число, которое вам нравится, тогда, когда вы запускаете свое приложение из сценария, вы можете определить, произошла ли ошибка. — person StormFoo; 24.11.2011
System.exit(int i) должен использоваться, но я бы включил его в более общий метод shutdown() , в который вы также должны включить шаги «очистки», закрытие соединений сокетов, дескрипторы файлов, затем выход с помощью System.exit(x) .
person Bastien schedule 20.04.2010
System.exit() обычно не лучший способ, но это зависит от вашего приложения. Обычный способ завершить приложение — выйти из метода main() . Это не работает, когда работают другие потоки, не относящиеся к deamon, как это обычно бывает для приложений с графическим пользовательским интерфейсом (AWT, Swing и т. Д.). Для этих приложений вы либо находите способ завершить цикл событий графического интерфейса пользователя (не знаю, возможно ли это с помощью AWT или Swing), либо вызываете System.exit() .
person Christian Semrau schedule 19.04.2010
Использование dispose(); — очень эффективный способ закрытия ваших программ. Я обнаружил, что использование System.exit(x) сбрасывает панель взаимодействий и, если вам нужна какая-то информация, она исчезает.
person Joshua schedule 17.06.2011
- вы используете соответствующее значение выхода. 0 — нормальный выход, все остальное указывает на ошибку
- вы закрываете все потоки ввода и вывода. Файлы, сетевые подключения и т. Д.
- вы регистрируете или распечатываете причину выхода, особенно если это из-за ошибки
person Freiheit schedule 19.04.2010
Ответ — System.exit (), но это не лучший вариант, поскольку это приводит к прерыванию программы. Никакой уборки, разрушения, которое вы намереваетесь сделать, не произойдет.
person Vaishak Suresh schedule 20.04.2010
На этот вопрос есть два простых ответа.
Это «Профессиональный путь»:
//This just terminates the program. System.exit(0);
Это более неуклюжий способ:
//This just terminates the program, just like System.exit(0). return;
person Anton schedule 27.07.2015
System.exit(0); return; тоже хорошо, return предотвращает запуск любого ruther кода до того, как Система сможет выйти, иначе вам понадобится флаг (.. i.e. if (!called_exit) < further code after exit statement >- person ycomp; 15.04.2016
System.exit() будет делать то, что вы хотите. Но в большинстве ситуаций вы, вероятно, захотите выйти из потока и оставить основной поток живым. Таким образом вы можете завершить задачу, но при этом сохранить возможность запускать другую задачу без перезапуска приложения.
person SmartFingers schedule 13.10.2017
System.exit (ABORT); Немедленно прекратите процесс.
person pooploser0110 schedule 22.04.2014
Не существует такой переменной, как ABORT. — person Alfonso Vergara; 22.08.2016
Это должно происходить правильно:
person user3596517 schedule 14.10.2015
person schedule
Лучше: Runtime.getRuntime (). Halt (0); У меня отлично работал в Scala! — person Gerhard Hagerer; 27.05.2013
Из документации Javadoc для halt : этот метод следует использовать с особой осторожностью. В отличие от метода exit , этот метод не вызывает запуск обработчиков завершения работы и не запускает неактивированные финализаторы, если включена финализация при выходе. Если последовательность выключения уже была инициирована, этот метод не ожидает, пока какие-либо запущенные обработчики выключения или финализаторы завершат свою работу. Короче говоря, вам не нужно использовать halt , вы должны предпочесть exit . — person Erwin Bolwidt; 11.06.2017
Источник: evogeek.ru
Как заставить Java-программу закрыться через пару секунд
В любом случае я могу выйти из java-программы через пару секунд, например, 5 секунд.
Я знаю, что вы можете выйти из программы Java, используя:
System.exit(0);
Но я не уверен, означает ли 0 секунды, так как этот код:
System.exit(10);
также мгновенно выходит
Это интересно, но с какой стати вам выходить из работающей ВМ? — Eugene
0 does not stand for seconds . В System.exit(X) X — это код выхода из вашей программы (то, что он сообщит вызывающей оболочке), он не имеет ничего общего со временем. — KevinDTimm
5 ответы
System.exit(0) указывает код ошибки выхода программы.
вы можете поставить его на таймер и запланировать задачу
import java.util.Date; import java.util.Timer; import java.util.TimerTask; public class TimedExit < Timer timer = new Timer(); TimerTask exitApp = new TimerTask() < public void run() < System.exit(0); >>; public TimedExit() < timer.schedule(exitApp, new Date(System.currentTimeMillis()+5*1000)); >>
и тогда вы можете просто вызвать TimedExit()
ответ дан 01 апр.
Спасибо, я использовал эту идею и обновил ее до java 8. Теперь он однострочный: Executors.newSingleThreadScheduledExecutor().schedule(() -> System.exit(0), 60, TimeUnit.SECONDS); — Paul S
Вы можете вызвать Thread.sleep() непосредственно перед выходом из программы:
// Your code goes here. try < Thread.sleep(5000); >catch (InterruptedException e) < // log the exception. >System.exit(0);
ответ дан 13 апр.
это может привести к сбою, если включена проверка безопасности — Евгений
от System.exit (число) документация по методу:
Завершает работающую в данный момент виртуальную машину Java. Аргумент служит кодом состояния; по соглашению ненулевой код состояния указывает на ненормальное завершение.
Если вам нужно что-то выполнить во время ожидания выхода, вы можете создать поток управления, который будет просто ждать нужного времени для выполнения выхода следующим образом:
public class ExitFewMiliseconds < public static void main(String args[]) < new Thread(new Runnable() < public void run() < try < Thread.sleep(100); >catch (InterruptedException e) < e.printStackTrace(); >System.exit(0); > >).start(); while (true) < System.out.println(«I’m doing something»); >> >
Если ничего не будет выполняться во время ожидания выхода, вы можете просто использовать Thread.sleep (мс)
ответ дан 01 апр.
0, который вы передаете в System.exit(0), не имеет ничего общего с тем, как долго он будет ждать перед выходом. Javadocs — ваш друг. Из javadoc:
Аргумент служит кодом состояния; по соглашению ненулевой код состояния указывает на ненормальное завершение.
Другие ответы уже охватывают, как подождать 5 секунд перед выходом, если вам действительно нужно это сделать.
ответ дан 01 апр.
import java.util.Timer; import java.util.TimerTask; /** * Simple demo that uses java.util.Timer to schedule a task * to execute once 5 seconds have passed. */ class Reminder < Timer timer; public Reminder(int seconds) < timer = new Timer(); timer.schedule(new RemindTask(), seconds * 1000); >class RemindTask extends TimerTask < public void run() < System.out.format(«Time’s up!%n»); System.exit(); timer.cancel(); //Terminate the timer thread >> public static void main(String args[]) < new Reminder(10); System.out.format(«Task scheduled.%n»); >>
Таким образом, вы можете использовать класс Timer и выйти из системы через определенный интервал времени.
ответ дан 05 мар ’17, в 19:03
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками java system exit seconds or задайте свой вопрос.
Источник: stackovergo.com