2016-10-24 55 views
1

我用soot來檢測java程序。我知道爲了在soot中添加對特定類的調用,我們必須將「Soot class-path」設置爲包含該類,.class文件的目錄。所以我在主要類的主要方法中做這個。我把代碼段的波紋管接收甚至找不到類錯誤設置煙塵庫類路徑

public class Main { 
public static void main(String[] args) { 
Scene.v().setSootClassPath("/home/j/IdeaProjects/Test_1/classes:/home/j/IdeaProjects/Test_1/libs/rt.jar:home/j/IdeaProjects/Test_1/libs/jce.jar"); 
    PackManager.v().getPack("jtp").add(new Transform("jtp.RetIns", new ExIns())); 
.... 

但是,當我想在Exins方法下面的代碼使用「Insop」類,居住類中的文件夾,:

static SootClass Ins; 
static 
{ 
    Ins= Scene.v().loadClassAndSupport("Insop"); 
} 

我得到的錯誤

Caused by: java.lang.RuntimeException: couldn't find class: Insop (is your soot-class-path set properly?) 

我應該提到我使用的是Ubuntu 14.4 32位,我在intellij上運行代碼。 我找不到我的錯誤。你可以幫我嗎。

回答

1

我終於找到了問題。我不知道爲什麼,但我應該設置相對路徑的「煙塵類路徑」。以我的項目爲例,它應該設置如下:

Scene.v().setSootClassPath("classes:libs/rt.jar:libs/jce.jar");