I’ve always assumed it was to define the value of a property… possibly a legacy from C compilers, which often use -D
as similar to #define
in code.
EDIT: The closest I have to a source for this at the moment is some JDK 1.1 documentation which specifies the flag as:
Redefines a property value. propertyName is the name of the property whose value you want to change and newValue is the value to change it to. […]
That at least contains the word “redefine” which is close to “define” 🙂