Переменная системной среды Java

Есть ли в Java системная переменная среды по умолчанию, которая всегда будет считываться/добавляться при ее установке? CATALINA_OTPS/ JAVA_OPTSи т. д. кажется только для TOMCAT/JBOSS и т. д.

  1. Я не хочу устанавливать его через системные свойства Java (которые передаются через -Dprop1=value1 -Dprop2 =value2), так как он включает сценарий оболочки/пакета.
  2. Это должно работать в разных ОС, как двойной щелчок по jar-файлу в Windows.
  3. Он должен работать в разных JRE (Sun, IBM, OpenJDK и т. д.).
  4. Это не должно включать дополнительное кодирование.
  5. Это должно работать в большинстве файлов конфигурации библиотек, например, в настройках log4j. уровень ${LOG_LEVEL}.

Обновление: Добавлены пункты № 4 и 5. Удалите ОС из заголовка, чтобы сделать мой вопрос более понятным.

Обновление 2: После просмотра ответа Perception кажется, что мои пункты 2 и 3 можно выполнить с помощью System.getenv. Как выполнить пункт 4 и 5?

Вот пример сценария: Представьте теперь JAVA_DEFAULT_OPTS— это переменная среды, которая будет считываться Java, поскольку теперь она стала стандартом. На компьютере для разработки я установил JAVA_DEFAULT_OPTS=-DLOG_LEVEL=DEBUG -Xmx384m; На рабочем сервере клиенты устанавливают JAVA_DEFAULT_OPTS=-DLOG_LEVEL=INFO -Xmx1024m.Когда я/пользователи дважды щелкают файл jar в Windows, приложение будет работать с другим уровнем log4j и максимальным размером кучи памяти.

7
задан Lee Chee Kiam 13 March 2012 в 02:47
поделиться