gpt4 book ai didi

java - 使用WALA分析Java字节码时,如何去掉不相关的类?

转载 作者:搜寻专家 更新时间:2023-11-01 02:48:51 25 4
gpt4 key购买 nike

我在 http://www.programcreek.com/2012/10/wala-tutorial/ 上阅读了关于 WALA 的文章并尝试执行示例。我想知道如何摆脱 test.jar 中除我的测试代码之外的类。谢谢!

import java.io.File;
import java.io.IOException;
import java.util.jar.JarFile;

import com.ibm.wala.classLoader.IClass;
import com.ibm.wala.classLoader.IMethod;
import com.ibm.wala.ipa.callgraph.AnalysisScope;
import com.ibm.wala.ipa.cha.ClassHierarchy;
import com.ibm.wala.ipa.cha.ClassHierarchyException;
import com.ibm.wala.ipa.cha.IClassHierarchy;
import com.ibm.wala.util.config.AnalysisScopeReader;
import com.ibm.wala.util.io.FileProvider;


public class WalaTest {
public static void main(String args[]) throws IOException, ClassHierarchyException {

File exFile=new FileProvider().getFile("Java60RegressionExclusions.txt");
System.out.println(exFile.getAbsolutePath());
AnalysisScope scope = AnalysisScopeReader.makeJavaBinaryAnalysisScope("test.jar",exFile);
IClassHierarchy cha = ClassHierarchy.make(scope);
for (IClass c : cha) {
String cname = c.getName().toString();
System.out.println("Class:" + cname);
for (IMethod m : c.getAllMethods()) {
String mname = m.getName().toString();
System.out.println(" method:" + mname);
}
System.out.println();
}


}
}

最佳答案

在您的 IClass 循环中,添加以下行以首先使用 isApplicationLoader() 检查范围。

if (!scope.isApplicationLoader(c.getClassLoader())) continue;

关于java - 使用WALA分析Java字节码时,如何去掉不相关的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15842245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com