Encodera

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

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

Справочник Java

System.getenv()

Возвращает значение переменной окружения или null, если такой переменной нет.

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

Синтаксис

public static String getenv(String name)

Параметры

ПараметрТипОписание
nameStringИмя переменной окружения, например PATH или APP_MODE.

Возвращаемое значение

StringЗначение переменной или null.

Примеры

Переменную задают при запуске программы. В Linux и macOS: APP_MODE=production java Main.java, в PowerShell сначала $env:APP_MODE = "production":

void main() {
    String mode = System.getenv("APP_MODE");
    IO.println("Mode: " + mode);
}

Результат:

Mode: production

Если переменной нет, метод возвращает null — подставьте значение по умолчанию:

void main() {
    String port = System.getenv("APP_PORT");
    IO.println(port);
 
    int value = port != null ? Integer.parseInt(port) : 8080;
    IO.println(value);
}

Результат:

null
8080

Примечания

Переменные окружения задаёт система или тот, кто запускает программу; из Java их можно только читать. В Windows имена не зависят от регистра, в Linux и macOS зависят. Без аргумента System.getenv() возвращает неизменяемую Map со всеми переменными. Короткая запись значения по умолчанию — Objects.requireNonNullElse(System.getenv("APP_PORT"), "8080"). Пароли и ключи API обычно передают именно через переменные окружения, а не пишут в код.

См. также

  • System.getProperty() — Возвращает системное свойство JVM: версию Java, имя ОС или своё свойство, заданное через -D.
  • System.exit() — Немедленно завершает программу с заданным кодом выхода.
  • Objects.requireNonNull() — Проверяет, что значение не null, и сразу бросает NullPointerException с понятным сообщением.
  • Map.getOrDefault() — Возвращает значение по ключу или запасное значение, если ключа нет.

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

В учебнике

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

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

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