如何检测Java System属性是否已更改?

时间:2012-05-22 21:27:42

标签: java properties listener jmx

我想知道何时更改了System属性。我在应用程序服务器中有一个应用程序,它以某种方式改变了系统属性(我认为System.setProperty())。我正在看一看,我找到了不同的方法:

  1. JPDA?
  2. Observer & Observable?
  3. Property change listener?
  4. JMX?
  5. 有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:6)

您可以使用自己的自定义子类替换系统属性。

MyProperties newProps = new MyProperties(System.getProperties());
System.setProperties(newProps);

然后,只需编写一个属性的子类来挂钩相关的方法。

答案 1 :(得分:1)

如果您主要想找到问题,我会考虑使用SecurityManager。它有几种方法checkPropertiesAccess()checkPropertyAccess(),看起来它们可以帮助您 找到 这个问题,但不一定能够'系统属性发生更改时通知您。'