【发布时间】:2013-07-18 22:26:29
【问题描述】:
我想知道 java 中的 System.setProperty 是否会导致为整个 JVM 设置该属性。因此,如果我在一个方法中设置此属性,将为 weblogic 服务器中的整个 JVM 设置该属性。
【问题讨论】:
-
简短的回答是肯定的......假设您真的只是在谈论一个 JVM 而不是多个 JVM。阅读链接的问答
标签: java properties jvm
我想知道 java 中的 System.setProperty 是否会导致为整个 JVM 设置该属性。因此,如果我在一个方法中设置此属性,将为 weblogic 服务器中的整个 JVM 设置该属性。
【问题讨论】:
标签: java properties jvm
是的
java.lang.System#setProperty 源码:
public static String setProperty(String key, String value) {
checkKey(key);
SecurityManager sm = getSecurityManager();
if (sm != null) {
sm.checkPermission(new PropertyPermission(key,
SecurityConstants.PROPERTY_WRITE_ACTION));
}
return (String) props.setProperty(key, value);
}
而props 只是java.lang.System 中的一个私有静态成员。
private static Properties props;
所以,java.lang.System#setProperty 和 java.lang.System#getProperty 只是普通的静态方法。更改props会影响整个JVM。
【讨论】: