2016-10-24 7 views
1

私は、スートをJavaプログラムのインストルメントに使用します。私はすすの特定のクラスに呼び出しを追加することを知っている、私たちはそのクラス、.classファイルを含むディレクトリに "Sootクラスパス"を設定する必要があります。だから私はメインクラスのメインメソッドでこれを行います。私は受信エラーでもクラスエラーが見つかりませんでした。スートライブラリのクラスパスを設定する

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メソッド内のコードを以下によりclassesフォルダに存在する「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

最後に問題が見つかりました。なぜかわからないけど、私は相対的なパスで "soot class-path"を設定すべきです。たとえば、私のプロジェクトでは、次のように設定する必要があります。

Scene.v().setSootClassPath("classes:libs/rt.jar:libs/jce.jar"); 
関連する問題