2016-10-24 1 views
1

나는 그을음을 사용하여 Java 프로그램을 계측합니다. 나는 그을음의 특정 클래스에 대한 호출을 추가하기 위해 클래스 ".class"파일이 들어있는 디렉토리에 "Soot class-path"를 설정해야한다는 것을 알고있다. 그래서 나는 메인 클래스의 메인 메소드에서 이것을한다. 나는수신 오류가 클래스 오류를 찾을 수 없습니다. 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 방법의 코드에 따라 클래스 폴더에있는 "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?) 

내가 우분투 14.4 32 비트를 사용하고 내가 intellij에 코드를 실행 언급해야합니다. 내 실수를 찾을 수 없습니다. 저 좀 도와 주 시겠어요.

답변

1

마침내 문제가 발생했습니다. 나는 이유를 모르지만 상대 경로로 "그을음 클래스 경로"를 설정해야합니다. 내 프로젝트의 경우 다음과 같이 설정해야합니다.

Scene.v().setSootClassPath("classes:libs/rt.jar:libs/jce.jar"); 
관련 문제