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

解决方案 »

  1.   

    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值,如果没有就会报错。