System.getenv()
Возвращает значение переменной окружения или null, если такой переменной нет.
Доступно с: Java 1.0
Синтаксис
public static String getenv(String name)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| name | String | Имя переменной окружения, например 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.