我正在尝试创建一个可以捕获Java程序进行的所有读写的工具。另外,我想知道访问/修改了哪个对象的哪些字段。

我目前在看:

1)java.lang.instrument
我对此无能为力。我不明白如何编写一个代理,该代理可以访问正在运行的程序并在不同的对象/字段和任何相关内容上创建监视。如果您有任何想法或信息,我将不胜感激。

2)jvmti
我查看了jvmti并尝试创建了jvmti工具,但是我发现要获取对象,我需要JVMTI_EVENT_OBJECT_ALLOC是潜在的功能。但是,我认为不是。此外,我读到此事件不要求新命令。因此,目前看来,这似乎并不适用。

因此,我想知道你们是否知道使用上述方法或您可能知道的任何其他技术/工具来做我想做的事情?

注意:我无权访问该应用程序的源代码。所有,我都是班级文件。

最佳答案

检查这些:

http://download.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html

http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html

http://jamonapi.sourceforge.net/

http://www.manageengine.com/products/applications_manager/java-runtime-monitoring.html

09-05 11:01