2016-10-24 7 views
1

Я использую сажу для инструментария Java-программы. Я знаю, что для добавления вызова к определенному классу в саже мы должны установить «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())); 
.... 

Но когда я хочу использовать класс «Insop», который проживает в папке классов, с помощью следующего кода в методе Exins:

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"); 

 Смежные вопросы

  • Нет связанных вопросов^_^