Adrninistrator / java-callgraph2

Programs for producing static call graphs for Java programs.
Apache License 2.0
194 stars 69 forks source link

分析模式不同产生的结果内容存在不一致 #11

Open ZupeiNie opened 1 year ago

ZupeiNie commented 1 year ago

你好 在使用过程中,我看到工具可以在配置文件中填入一个jar包的地址或者一个目录,如果是一个jar包会生成一个结果文件夹(模式A),但如果是多行jar包地址或者是目录则会先合成一个jar包再生成结果文件(模式B)。当我输入相同的多个jar包时,模式A得到多个结果文件夹,我将其中的method_call.txt汇总后得到的数据和我输入一个目录(目录下是和模式A相同的jar包)输出一个method_call.txt的内容存在差异,即两种模式分析出来的结果不同。 想请问这两种模式下出现不同结果的原因,十分感谢!

Adrninistrator commented 1 year ago

如果多个jar包是一个项目中的不同的模块,这种情况下最好是把相关的jar包同时在配置文件中指定,因为各个jar包的类之间的实现和继承的关系可以识别出来 如果分开处理的话,这些类的实现和继承判断就没有办法识别,所以分开处理和一起处理的结果会有不同

ZupeiNie commented 1 year ago

我这边处理发现分开的结果存在合并的结果不存在的内容,即这两种情况的结果不是包含关系,数据是互补的

Adrninistrator commented 1 year ago

一般情况下,如果多个jar包之间是有相互使用关系的话,一起分析的结果应该是符合预期的,分开分析会丢失一些信息

ZupeiNie commented 1 year ago

好的,谢谢!