Как я могу получить функции sinatures из файла JAR? - PullRequest
4 голосов
/ 04 октября 2010

В Eclipse или NetBeans, когда вы «управляете + щелкаете» в функции, вы можете по крайней мере увидеть всю ее подпись, даже если она находится в файле JAR.

Мне интересно, можно ли написатьинструмент для извлечения всех сигнатур функций из файла JAR.Есть ли какой-либо API для этого?

Я знаю, jDepend , кажется, предлагает функции для этого.Однако я считаю, что есть несколько более общих способов сделать это.

Ответы [ 2 ]

4 голосов
/ 04 октября 2010

Я думаю, что инструмент javap - это то, что вам нужно.

Что-то вроде javap -classpath ./lib/ MyClass должно сработать.

См. Также это руководство исправочная информация для javap (google javap, у меня недостаточно репутации, чтобы опубликовать более 1 ссылки).

2 голосов
/ 04 октября 2010

Банки - это zip-файлы, поэтому вы можете использовать процедуры zip для получения определения байтового кода для каждого класса в файле jar.

Затем, учитывая байт-код, вы можете использовать инструмент анализа байтового кода, javassist , чтобы загрузить байт-код в ClassFile, а затем получить MethodInfo, который затем можно обработать по своему усмотрению.

...