Системные свойства Java через -D: синтаксис и приоритет
Дата публикации:
Обновлено:
Статьи > Системные свойства Java через -D: синтаксис и приоритет
Статус 2026 года и безопасное использование
Вывод: поместите -Dname=value перед основным классом или аргументом -jar, чтобы определить системное свойство JVM. Код Java считывает его с помощью System.getProperty("name"); это не то же самое, что переменная среды операционной системы.
Чему вы научитесь
- Как средство запуска Java анализирует параметры
-Dи где хранится значение. - Как проверять свойства без утечки секретных данных в командные строки или списки процессов.
- Как исходный пример Java 11 соотносится с текущими поддерживаемыми выпусками JDK.
Для кого: Java-разработчики и операторы, диагностирующие конфигурацию приложений для конкретной среды.
Актуальность на 2026 год Механизм остается актуальным, но для учетных данных используйте диспетчер секретов или защищенный источник конфигурации. В приведенном ниже пошаговом руководстве записан исходный тест Java 11, и его не следует рассматривать как рекомендацию помещать секреты в аргументы -D.
Примечание по безопасности. Команды и примеры конфигурации из исходной статьи не проверялись повторно в современной производственной среде. Перед применением проверьте поддерживаемые версии, резервные копии, контроль доступа и процедуру отката в отдельной тестовой среде.
Официальные первоисточники
Обзор
Системное свойство указывается перед главным классом или параметром -jar, например "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager". В Eclipse добавьте его в поле "Конфигурация запуска ⇒ Аргументы VM", как показано ниже.
В этом разделе объясняется, что происходит, когда вы добавляете это '-DXXXXXX'.
1. Что такое опция D (-D)?
Параметр -D задаёт системное свойство при запуске JVM. Затем программа может прочитать его через System.getProperty.
1-1. Что произойдет, если вы запустите его с опцией D (-D)
В Eclipse добавьте "-Dtest=testoption" к аргументам VM в конфигурации запуска, как показано ниже.
Создайте простой главный класс, как показано ниже.
Выполнение этого главного класса показывает, что значение "testoption" может быть получено с "test" в качестве аргумента следующим образом.
Это означает, что если значение системного свойства установлено при запуске Java, оно может быть получено из класса System.
2. Итоги
Опция D (-D) при запуске Java позволяет извлекать значения из класса System. Он используется, например, когда вы хотите динамически устанавливать разные значения для разных сред.



