использовать asm (java bytecode) classreader для класса за пределами пакетов моего проекта? - PullRequest
1 голос
/ 22 февраля 2011

Я получаю путем ввода пути к классу (скажем, "C: \ Temp \ Test.class). Что я хотел бы сделать, это инициализировать ClassReader для этого класса и начать инструментирование его с помощью ClassAdapter иClassWriter (я знаю, как делать инструментарий).

Чего я не знаю, так это как «добавить» этот класс в программу чтения классов?

Я пытался использовать конструктор ClassReader (String)но это было напрасно

спасибо! (и извините за мой плохой английский)

1 Ответ

3 голосов
/ 23 февраля 2011

Я не знаю, какую библиотеку вы используете - очевидно, это ASM . В любом случае, я вижу, что конструктор, который вы пытаетесь использовать , принимает не имя файла, а полное имя класса. Однако есть другой конструктор , который принимает InputStream. Таким образом, вы должны быть в состоянии решить вашу проблему, передав FileInputStream этому конструктору:

ClassReader r = new ClassReader(new FileInputStream(filename));
...