Ответ 1
Переменные окружения специфичны для операционной системы. Свойства - это только JVM.
Я не понимаю. Когда я запускаю приложение Java или запускаю апплет в средстве просмотра апплетов (в среде IDE), System.getProperty("java.class.path")
дает мне то же самое, что System.getenv("CLASSPATH")
, который является CLASSPATH, определенным в моей переменной env.
Но когда я развертываю свой апплет на веб-сервер и получаю его с того же компьютера, что и клиент, у меня разные результаты для двух. (System.getProperty("java.class.path")
указывает только на JRE home и System.getenv("CLASSPATH")
возвращает null).
И вот некоторые другие вещи, которые заставляют меня задуматься:
Для части апплета, env var JAVA_HOME, я получаю тот же результат при развертывании апплета в браузере, а также в Applet Viewer.
И если я определяю себя переменной env на системном уровне и использую getenv("envName")
, результат равен null
. В любом случае, я могу определить его и получить в моей программе Java?
Переменные окружения специфичны для операционной системы. Свойства - это только JVM.
System.getProperty("Propertname") **Platform Independent**
Вышеуказанный метод вернет аргументы и свойства JVM.
System.getenv("EnvName") **Platform Dependent**
Вышеуказанный метод возвращает переменные операционной системы environment
.
В Linux вы можете установить переменную среды из оболочки, используя следующую команда.
export SYSTEM_TYPE=PROD
В Java вы можете прочитать переменную
System.getenv("SYSTEM_TYPE")
Приведенный выше код вернет PROD
http://javarevisited.blogspot.in/2012/08/how-to-get-environment-variables-in.html