为什么Java使用-D来表示系统属性?

Eri*_*son 12 java flags language-design semantics

为什么标志指示Java中的System属性-D?当然这个字母选择有一些语义,但我猜不出它是什么.

Edw*_*uck 23

它是设置系统定义的简称.

"define"debug为yes

-Ddebug=yes
Run Code Online (Sandbox Code Playgroud)

有一些历史背景,因为其他编译器使用类似的标志.例如,gcc用于-D设置预处理器定义.

gcc -D debug=yes test.c
Run Code Online (Sandbox Code Playgroud)

将使用预处理环境编译test.c,其中预处理器变量debug设置为yes.