[英]Loading Java class files for Soot dynamically in Eclipse
我目前正在开发一个程序,该程序将两个控件-流程图相互比较(这些图表是用Soot生成的)。 这些图属于两个不同的类别。 因此每一个CFG。
目前,我正在使用以下方法加载类:
SootClass sClassNew = Scene.v().loadClassAndSupport("Calc");
sClassNew.setApplicationClass();
SootClass sClassOld = Scene.v().loadClassAndSupport("Calc2");
sClassOld.setApplicationClass()
如果我通过在项目上单击鼠标右键来添加包含Calc.java和Calc2.java类的文件夹,则此方法有效。 Java构建路径 添加外部类文件夹| 选择文件夹。
不幸的是,这并不是我想要的,因为:
一个重要的注意事项是,Soot只会从Soot的类路径中找到的JAR文件和目录中加载文件。 有谁知道我如何解决这两个问题?
煤烟并未真正解决这个问题。 它的主要数据结构是Scene,在其中包含其所要说明的所有类,并且每个类名只能包含一个类实例,而该场景不能有两个不同的版本。
话虽如此,我们最近已经建立了一个名为Reviser的Soot扩展(目前正在提交中): https : //github.com/StevenArzt/reviser Reviser逐步更新程序的过程间控制流程图和IFDS / IDE分析信息。 。 为了使这项工作奏效,我们不得不反复研究Soot的类加载机制。 这绝非易事。 如果您对这些细节感兴趣,请发送个人邮件给Steven Arzt和我本人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.