Есть ли в Java переменная системной среды по умолчанию, которая всегда будет читаться / добавляться при ее установке? CATALINA_OTPS
/ JAVA_OPTS
и т. Д., Кажется, только для TOMCAT / JBOSS и т. Д.
- Я не хочу устанавливать его через системные свойства Java (которые передаются через -Dprop1 = value1 -Dprop2 = value2), так как он включает в себя shell / batch-скрипт.
- Он должен работать в любой операционной системе, например, файл двойного щелчка в Windows.
- Он должен работать в разных JRE (Sun, IBM, OpenJDK и т. Д.).
- Это не должно включать дополнительное кодирование.
- Он должен работать в большинстве конфигурационных файлов библиотек, например, при настройке log4j.
уровень $ {LOG_LEVEL}.
Обновление : добавлены пункты 4 и 5. Удалите ОС из заголовка, чтобы сделать мой вопрос более понятным.
Обновление 2 : После просмотра ответа Восприятия, кажется, что мои пункты 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 и максимальным размером кучи памяти.