Why is the flag that indicates a System property in Java -D
? Surely there is some semantics to this letter choice, but I can't guess what it is.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
It is short for setting a system define.
"define" debug to yes
-Ddebug=yes
There is some historical context, as other compilers use similar flags. For example, gcc
uses -D
to set a preprocessor define.
gcc -D debug=yes test.c
will compile test.c with a preprocessing environment where the preprocessor variable debug
is set to yes
.
回答2:
"defines" properties. Properties aren't arguments, so you'd need a special identifier anyway.