2015-08-20 102 views
5

我有一个abc.jar文件,它有一些Java类。我没有它的源代码。我想获得在调试过程中被击中的类/方法的日志。我该怎么做?如何从.jar文件获取日志?

P.S - 我本来可以使用log4j,但我没有源代码。

+0

你知道你的'abc.JAR'文件是否使用'slf4j'? –

+0

不,那个abc.jar没有使用/实现任何日志框架。 –

+0

尝试在命令行上运行你的jar。 – VedX

回答

2

您在评论中声明您知道不使用任何日志记录框架。

在这种情况下,无法从中获取日志。

但是,你可以做的是使用调试器。所有的IDE都有调试器。这可以帮助您了解在使用它们时正在调用的类的状态。

+0

哦,是吗?叹。 –

2

比方说,如果您有abc.jar并且它不使用任何框架进行日志记录,并且您没有任何源代码,如前所述。不,你不能以这种方式获得日志。

2

您需要使用分析工具,例如Java's hprof。这是一个很好的介绍分析。虽然功能不强,但这是一个好的开始。还有很多其他有用的分析工具。只需谷歌他们。

对于HPROF,CPU使用率取样型材的模式(CPU =样本)

e.g. javac -J-agentlib:hprof=cpu=samples Hello.java 

和CPU使用时间配置文件(CPU =次)

e.g. javac -J-agentlib:hprof=cpu=times Hello.java 

听起来像是你需要的东西。他们可以告诉你所谓的和多久。他们不会告诉你的是变量的状态。这是使用调试,因为日志不是一个选项。