如何找到哪个java类读取特定的xml文件?

时间:2014-12-22 19:44:53

标签: java decompiling

我正在研究一个我没有所有源代码的java应用程序。该应用程序基于spring框架,在启动时它会解析来自不同目录的大量xml文件。然后它创建了我想要禁用的给定xml内容的内部缓存,并在类中进行更改以在需要时读取xml内容并且不缓存它们。出于这个原因,我必须找出哪个类打开我的xml。

(如果我能找到它,那么我可以要求访问源代码,但在此之前我无法访问它。)

我对这个类有什么了解,它从不同的目录解析了很多xmls,所以文件名不会硬编码到类中。

我正在考虑使用反编译器对类文件进行反向工程,但是有很多,并且包层次结构太深,无法逐个执行。也许有一种方法可以使用eclipse插件或命令行工具一次反编译整个jar文件,但我不知道如何。无论如何,也许有一个更简单的解决方案。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

这听起来像是调试器的工作。特别是 - 条件断点。

在eclipse中可以这样做:

  1. FileInputStream(File)中设置断点(几乎可以肯定这个类将用于读取文件)。
  2. 在断点视图中,单击断点 - > “断点属性......”。
  3. 检查“有条件”
  4. 输入一些表达式,该表达式将检测您感兴趣的文件。例如:arg0.getPath().endsWith("test.xml")
  5. 启动程序并等到达到断点。
  6. 您将能够从堆栈跟踪中获取呼叫者。