AnalysisScope类型对象 表示要分析的代码
创建AnalysisScope对象
第一个参数为class文件路径或jar路径,第二个参数是写有要排除分析的文件的txt文件。
AnalysisScope scope = AnalysisScopeReader.instance.makeJavaBinaryAnalysisScope("path.class", (new FileProvider()).getFile(CallGraphTestUtil.REGRESSION_EXCLUSIONS));
AnalysisScope scope = AnalysisScopeReader.instance.makeJavaBinaryAnalysisScope("path.jar", (new FileProvider()).getFile(CallGraphTestUtil.REGRESSION_EXCLUSIONS));
从文本文件读入Java应用程序的分析scope
AnalysisScopeReader.readJavaScope(scopeFileName, new FileProvider()).getFile(CallGraphTestUtil.REGRESSION_EXCLUSIONS), javaLoader)
其中readJavaScope函数的具体代码如下
/**
* read in an analysis scope for a Java application from a text file
*
* @param scopeFileName the text file specifying the scope
* @param exclusionsFile a file specifying code to be excluded from the scope; can be {@code null}
* @param javaLoader the class loader used to read in files referenced in the scope file, via
* {@link ClassLoader#getResource(String)}
* @return the analysis scope
*/
public AnalysisScope readJavaScope(
String scopeFileName, File exclusionsFile, ClassLoader javaLoader) throws IOException {
AnalysisScope scope = AnalysisScope.createJavaAnalysisScope();
return read(scope, scopeFileName, exclusionsFile, javaLoader);
}
scopeFileName所代表的文件中,每一行都给出了四条信息:loader, lang, type, val, 比如:Application, Java, jarFile, bcel-5.2.jar