Java系统属性总是非空吗?

有一些 Java system properties,其中包括像java.home和path.separator,user.home这样的东西. spec没有提到任何关于这些价值观存在的正式承诺.

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

解决方法

我认为您可以放心地假定该列表中的所有属性始终可用于任何最近(Oracle提供的)JVM.

但是,空值检查更防御,在这种情况下并不昂贵.

我从来没有看到user.home为null或认指定不正确.但是,请注意,用户可以使用-Duser.home = …覆盖,因此您无法依靠它指向现有路径.

相关文章

应用场景 C端用户提交工单、工单创建完成之后、会发布一条工...
线程类,设置有一个公共资源 package cn.org.chris.concurre...
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量