Существуют ли какие-либо библиотеки для извлечения имен зависимостей классов, методов, членов и полей из файла .class (байт-кода)?

Как сказано в названии, существуют ли какие-либо библиотеки для извлечения имен зависимостей классов, методов, членов и полей из файла .class (байт-код)?

Например, если в скомпилированном файле .class Scala используется что-то вроде этого:

var xs = new List[java.lang.String]();
"blah" :: xs;
xs(0).charAt(0);

Я должен понять, что использую эти классы и методы:

java.lang.String
java.lang.String#charAt
scala.collection.immutable.List
scala.collection.immutable.List#apply

Есть ли какая-нибудь библиотека с API, которую я могу использовать в моей собственной программе Scala, которая может сделать это за меня?


person ioreskovic    schedule 06.07.2012    source источник
comment
Вы можете посмотреть ASM.   -  person McDowell    schedule 06.07.2012


Ответы (2)


Вот структура ASM руководство, объясняющее, как собирать зависимости от классов.

person Eugene Kuleshov    schedule 06.07.2012

Вам необходимо уметь читать код тел методов. Я бы использовал библиотеку байтового кода, такую ​​как ObjectWeb ASM, BCEL или JavaAssist.

person Peter Lawrey    schedule 06.07.2012