JAVA_OPTIONS 布尔值区分大小写吗?

Is JAVA_OPTIONS boolean case sensitive?

我正在尝试将 JAVA_OPTIONS 设置为我的应用程序

-Djava.net.preferIPv4Stack=true

也可以设为-Djava.net.preferIPv4Stack=True大写的T吗?这个案子重要吗?

这是优秀程序员优秀设计师之间的区别的场合:

  • 一个好的程序员会确保这个参数化(-Djava.net.preferIPv4Stack=True)在当前环境下工作:例如,如果你正在使用 Open JDK 15,你应该浏览查看源代码,您会看到使用该参数的 class java.net.PlainSocketImpl 委托 Boolean.parseBoolean,它执行不区分大小写的解析。

  • 一个好的设计师,相反,会确保设置一个参数化,这样 将适用于每个环境(Open JDK,Oracle JDK、版本 15、未来版本、Windows、Linux 等),通过坚持 public documentation,它声明只有“真”或“假”(或不存在) ) 必须使用值。

总结:如果您使用的是 Open JDK15,则“真”或“真”值之间没有区别,但您不能确定在未来的版本中这种区别是否重要。我建议您坚持记录的允许值。

要读取布尔系统属性,您通常会使用

Boolean.getBoolean("argument.name");

其中:

Returns true if and only if the system property named by the argument exists and is equal to the string "true". (Beginning with version 1.0.2 of the JavaTM platform, the test of this string is case insensitive.)

(Reference)

这完全取决于开发人员(开发人员也可以使用 System.getProperty 然后以他自己的方式将结果转换为布尔值),但我会说在大多数情况下,我认为它不区分大小写.