1
即時編寫程序來獲取並打印程序的調用圖。即時通訊使用煤煙嘗試和獲取調用圖,我通過作爲參數的java類我想打印出來,但是當我運行該程序時,我得到一個消息,煤煙無法找到類。如何配置eclipse類路徑來查找我想要打印的calss?eclipse class soot的類路徑
我的代碼:
public class CFG extends SceneTransformer
{
public static void main(String[] args)
{
if(args.length == 0)
{
System.out.println("Syntax: java CFG [soot options]");
System.exit(0);
}
PackManager.v().getPack("wjtp").add(new Transform("wjtp.cfg", CFG.v()));
// Just in case, resolve the PrintStream and System SootClasses.
Scene.v().addBasicClass("java.io.PrintStream",SootClass.SIGNATURES);
Scene.v().addBasicClass("java.lang.System",SootClass.SIGNATURES);
soot.Main.main(args);
}
private static CFG instance = new CFG();
public static CFG v() { return instance; }
protected void internalTransform(String phaseName, Map options)
{
System.out.println("Entering CFG transformer");
System.out.println("phaseName = " + phaseName);
System.out.println("options = " + options);
CallGraph cg = Scene.v().getCallGraph();
SootMethod m = Scene.v().getMainMethod();
Iterator targets = new Targets(cg.edgesOutOf(m));
while (targets.hasNext()) {
SootMethod trgt = (SootMethod)targets.next();
System.out.println(m.getName() + " -> " + trgt.getName() + ";");
}
System.out.println("Exiting CFG transformer");
}
}
即時消息使用eclipse中的soot eclipse插件 – user1839169
嘗試從命令行運行它;這爲用戶錯誤留下了更少的空間 – Eric
我使用行java -classpath。 graph.CFG p1.myClass – user1839169