Java:监视静态字段状态

Java:监视静态字段状态,java,jvisualvm,Java,Jvisualvm,我有一个JVM正在运行。对于时间t0和t1中的两个不同时刻,我想知道所有类的所有静态字段的值在t1和t0时是如何变化的 我想到的解决办法是: 监视/调试/配置所有静态字段的写入权限。 比较在t0和t1处拍摄的两个内存快照,以查找字段值的差异。我可以访问Java VisualVM和YourKit profiler。 我无法找到上述任何一个问题的答案 如果可能的话,实现我的目标的最佳方法是什么?使用java调试器,您应该能够在字段的值上设置断点,以便调试器在值更改时中断。例如,EclipseJava

我有一个JVM正在运行。对于时间t0和t1中的两个不同时刻,我想知道所有类的所有静态字段的值在t1和t0时是如何变化的

我想到的解决办法是:

监视/调试/配置所有静态字段的写入权限。 比较在t0和t1处拍摄的两个内存快照,以查找字段值的差异。我可以访问Java VisualVM和YourKit profiler。 我无法找到上述任何一个问题的答案


如果可能的话,实现我的目标的最佳方法是什么?

使用java调试器,您应该能够在字段的值上设置断点,以便调试器在值更改时中断。例如,EclipseJava调试器有这样一个功能,右键单击字段,选择ToggleBreakpoint


编辑:如果您想要更多的控制,例如编程控制,您可以使用脚本运行程序。这些都是简单的Java程序,使用非常精简的API,并连接到JVM中。

您也可以实现一个jmx bean,公开您需要的值。您在这里真正想要实现什么?这听起来像是XY问题。IDE调试器是我第一次尝试的最明显的事情。但是,您需要指定要监视的类和字段的名称。在我的例子中,我希望监视所有类的所有静态字段,这就是为什么我不能手动创建所有必要的断点。