System.setProperty and System.getProperty

Question:

我在一个类里面设置了一个System.setProperty,这个在我启动tomcat的时候也已经初始化了。但当我在有一个类调用System.getProperty时,就会报错,估计是没有这个值,打印出System.getProperty的值是null。
我想问的是System.setProperty将数据设置到什么地方去了,在什么范围内System.getProperty可以得到我们设置的那个值。

Answer:

JDK1.6说明:
setProperty
public static String setProperty(String key,
  String value)设置指定键指示的系统属性。  
首先,如果安全管理器存在,则通过 PropertyPermission(key, "write") 权限调用其 SecurityManager.checkPermission 方法。这可能导致抛出 SecurityException。如果没有抛出异常,则将指定属性设置为给定值。  

参数:
key - 系统属性的名称。
value - 系统属性的值。  
返回:
系统属性以前的值,如果没有以前的值,则返回 null。  
抛出:  
SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许设置指定属性。  
NullPointerException - 如果 key 或 value 为 null。  
IllegalArgumentException - 如果 key 为空。
注:这里的system,系统指的是 JRE (runtime)system,不是指 OS。
这些楼主明白了吧,你这可以设置jre里原本有的key值,如果没有就会报错。

原文地址:https://www.cnblogs.com/akira90/p/2841505.html