我有一个abc.jar文件,里面有一些Java类.我没有它的源代码.我想得到调试时遇到的类/方法的日志.我怎么能这样做?
PS - 我本可以使用log4j,但我没有源代码.
您需要使用分析工具,例如Java 的 hprof。这是对分析的一个很好的介绍。虽然不强大,但这是一个好的开始。还有许多其他有用的分析工具。只需谷歌搜索即可。
对于 hprof,CPU 使用情况采样配置文件的模式 (cpu=samples)
e.g. javac -J-agentlib:hprof=cpu=samples Hello.java
Run Code Online (Sandbox Code Playgroud)
和CPU使用时间概况(cpu=次)
e.g. javac -J-agentlib:hprof=cpu=times Hello.java
Run Code Online (Sandbox Code Playgroud)
听起来像你需要的。他们可以告诉您什么叫以及多久一次。他们不会告诉你的是变量的状态。鉴于无法选择日志记录,这就是调试的用途。
您在评论中声明您知道abc.jar不使用任何日志记录框架。
在这种情况下,不可能从中获取日志。
但是,您可以做的是使用调试器。所有 IDE 都有调试器。这可以帮助您了解使用类时被调用的类的状态。