在命令行上设置了不带值 (“-Dkey”) 的 Java 系统属性时,它会得到什么值?

2022-09-04 03:21:04

根据Oracle文档,我可以使用以下语法在命令行上设置Java进程的系统属性:

-Dproperty=value

但是当我不指定值时会发生什么,即当我省略“等于值”部分时:

-Dproperty

系统属性将设置为什么值?? ?空字符串?或者任何具有未定义的实现特定值的字符串?true


答案 1

它将返回一个空字符串。根据 System.getProperty(String key),仅当没有具有该键的属性时,才会返回 null。因此,如果我们定义一个 propety,则系统中存在-D


答案 2

从使用Oracle HotSpot VM的简单试验中,我可以看到在命令行上设置的没有值的系统属性得到一个空字符串作为值。

然而,这只是问题的部分答案。链接到某些规范将是一个更好的答案。


推荐