Java系统属性是否始终为非null?

mik*_*iku 10 java system-properties java-home home-directory

有几个Java系统属性,其中包括java.homepath.separator,user.home.该规范并没有提到这些值存在任何正式的承诺.

特别是我感兴趣user.home.它总是指向一些现有的路径吗?

har*_*ldK 4

我认为您可以放心地假设该列表中的所有属性在任何最新的(Oracle 提供的)JVM 中始终可用。

然而,null支票更具防御性,而且在这种情况下并不昂贵。

我从未见过user.home默认情况下为空或错误指定的情况。但是,请记住,用户可以使用 覆盖-Duser.home=...,因此您不能依赖它来指向现有路径。