Я обнаружил, что запускаю java-код из jar-файлов или классов, и мне даны инструкции по установке флагов командной строки, например -Dfoo = bar
При отладке или попытке запустить некоторую слабо документированную функцию у меня возникают проблемы с пониманием того, как значения фактически включаются в работающий код.
Я смотрю на источник, и неясно, как на самом деле загружается набор данных с чем-то вроде -Dfoo = bar.
Главный вопрос, который у меня есть, - что означает -D и как можно ожидать, что он будет виден в исходном коде?
Этот параметр устанавливает системные свойства, доступные в любом месте кода.
Из java -help
:
-D<name>=<value>
set a system property
От страница документации инструмента java
:
-Dproperty=value
Sets a system property value. The property variable is a string with no spaces that represents the name of the property. The value variable is a string that represents the value of the property. If value is a string with spaces, then enclose it in quotation marks (for example-Dfoo = "foo bar"
)
Букву «D» можно представить как «определить». Вы получаете доступ к установленным таким образом значениям через System.getProperty(String)
, System.getProperty(String,String)
или System.getProperties()
.
Пожалуйста, обратитесь к официальная документация.