Чтение байт-кода из выгруженных классов во внешних jarfiles

В моем Java-приложении я хочу прочитать содержимое байт-кода из файлов классов, которые на самом деле не загружены, в файлы JAR, которые также не загружены. Например, мне нужно иметь возможность взять любой данный jarfile и найти все классы внутри него, в идеале. Итак, возьмем следующую ситуацию:

Моему приложению (которое является своего рода библиотекой) предлагается "проверить" определенный jar-файл по любому пути, и ему предоставляются различные шаблоны, предоставляемые приложением, использующим мою библиотеку, для поиска сходств (например, постоянных сходств пула). Поэтому моя библиотека должна пройти через все банки в файле класса. Очевидно, я мог бы сделать его жестко запрограммированным или загруженным из файла, но я бы предпочел иметь его, чтобы я мог пройти через байт-код всех файлов в банке, чтобы соответствовать им.

1 ответ

Решение

Вы должны использовать JarFile API и перебирать файлы в нем. Это не должно быть трудно сделать. Эта статья может стать хорошим началом.

А что касается байт-кода, вы можете просто обработать каждый (несжатый) файл класса как байтовый массив и вычислить хэш, возможно, MD5-хэш каждого файла и сравнить его с предыдущим хеш-кодом.

Другие вопросы по тегам