Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

System.exit()

Немедленно завершает программу с заданным кодом выхода.

Доступно с: Java 1.0

Синтаксис

public static void exit(int status)

Параметры

ПараметрТипОписание
statusintКод выхода: 0 — успех, любое другое число — ошибка.

Примеры

Остановка с кодом 1, если что-то пошло не так. Строка Started не выводится:

void main() {
    IO.println("Checking config...");
    boolean configFound = false;
    if (!configFound) {
        IO.println("Config not found");
        System.exit(1);
    }
    IO.println("Started");
}

Результат:

Checking config...
Config not found

После System.exit() не выполняется даже блок finally:

void main() {
    try {
        IO.println("in try");
        System.exit(0);
    } finally {
        IO.println("in finally");
    }
}

Результат:

in try

Примечания

Код выхода видит тот, кто запустил программу: в bash — echo $?, в PowerShell — $LASTEXITCODE. Скрипты и CI-системы по нему понимают, успешно ли отработала программа. Если main просто закончился, код выхода 0, а при необработанном исключении — 1. Перед выходом выполняются обработчики Runtime.getRuntime().addShutdownHook(...). В библиотеках и серверных приложениях System.exit() не вызывают: он остановит всю JVM, а не только ваш код.

См. также

  • System.getenv() — Возвращает значение переменной окружения или null, если такой переменной нет.
  • Runtime.getRuntime() — Возвращает объект Runtime текущей JVM: память, число процессоров, обработчики завершения.
  • return — Завершает метод и возвращает значение вызывающему коду.

Вопросы и ответы по теме

В учебнике

  • Аргументы, окружение и код завершения — Как Java-программа получает настройки снаружи — аргументы командной строки, переменные окружения System.getenv, системные свойства System.getProperty и -D, код завершения System.exit.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.