|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Много операционных систем используют переменные окружения, чтобы передать конфигурационную информацию к приложениям. Как свойства в платформе Java, переменные окружения являются парами ключ/значение, где и ключ и значение являются строками. Соглашения для установки и использования переменных окружения изменяются между операционными системами, и также между интерпретаторами командной строки. Чтобы изучить, как передать переменные окружения к приложениям на Вашей системе, сошлитесь на свою системную документацию.
На платформе Java приложение использует System.getenv получать значения переменной окружения. Без параметра, getenv возвращает экземпляр только для чтения java.util.Map, где ключи карты являются именами переменной окружения, и значения карты являются значениями переменной окружения. Это демонстрируется в
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. использование в качестве примера Envgetenv этот способ запросить определенные переменные окружения, определенные на командной строке:
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.