0
我想知道java中的System.setProperty是否會導致爲整個JVM設置屬性。因此,如果我在方法中設置此屬性,將爲Weblogic服務器中的整個JVM設置屬性。java中的系統屬性
我想知道java中的System.setProperty是否會導致爲整個JVM設置屬性。因此,如果我在方法中設置此屬性,將爲Weblogic服務器中的整個JVM設置屬性。java中的系統屬性
YES
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。
[Java系統屬性的範圍]的可能重複(http://stackoverflow.com/questions/908903/scope-of-the-java-system-properties) –
簡短答案是肯定的......假設你實際上只談論一個JVM而不是多個JVM。閱讀鏈接的問答 –