Spec-Zone .ru
спецификации, руководства, описания, API
|
Много операционных систем используют переменные окружения, чтобы передать конфигурационную информацию к приложениям. Как свойства в платформе Java, переменные окружения являются парами ключ/значение, где и ключ и значение являются строками. Соглашения для установки и использования переменных окружения изменяются между операционными системами, и также между интерпретаторами командной строки. Чтобы изучить, как передать переменные окружения к приложениям на Вашей системе, сошлитесь на свою системную документацию.
На платформе Java приложение использует System.getenv
получать значения переменной окружения. Без параметра, getenv
возвращает экземпляр только для чтения java.util.Map
, где ключи карты являются именами переменной окружения, и значения карты являются значениями переменной окружения. Это демонстрируется в
пример:EnvMap
import java.util.Map; public class EnvMap { public static void main (String[] args) { Map<String, String> env = System.getenv(); for (String envName : env.keySet()) { System.out.format("%s=%s%n", envName, env.get(envName)); } } }
С a String
параметр, getenv
возвращает значение указанной переменной. Если переменная не определяется, getenv
возвраты null
.
использование в качестве примера Env
getenv
этот способ запросить определенные переменные окружения, определенные на командной строке:
public class Env { public static void main (String[] args) { for (String env: args) { String value = System.getenv(env); if (value != null) { System.out.format("%s=%s%n", env, value); } else { System.out.format("%s is" + " not assigned.%n", env); } } } }
Когда приложение Java использует a ProcessBuilder
объект создать новый процесс, набор значения по умолчанию переменных окружения, которые передают к новому процессу, является тем же самым набором, обеспеченным для процесса виртуальной машины приложения. Приложение может изменить это использование набора ProcessBuilder.environment
.
Есть много тонких различий между способом, которым переменные окружения реализуются на различных системах. Например, Windows игнорирует регистр на имена переменной окружения, в то время как UNIX не делает. Путем переменные окружения используются, также изменяется. Например, Windows обеспечивает имя пользователя в вызванной переменной окружения USERNAME
, в то время как реализации UNIX могли бы обеспечить имя пользователя в USER
, LOGNAME
, или оба.
Чтобы максимизировать мобильность, никогда не обращайтесь к переменной окружения, когда то же самое значение доступно в системном свойстве. Например, если операционная система обеспечит имя пользователя, то это всегда будет доступно в системном свойстве user.name
.