Инженерная библиотека байтового кода - Byte Code Engineering Library

Apache Commons BCEL
Разработчики)Фонд программного обеспечения Apache
Стабильный выпуск
6.4.1 / 3 октября 2019 г.; 13 месяцев назад (2019-10-03)
Репозиторий Отредактируйте это в Викиданных
Написано вЯва
Операционная системаКроссплатформенность
ТипБайт-код Инженерная библиотека
ЛицензияЛицензия Apache 2.0
Интернет сайтобщие.apache.org/ bcel/

В Инженерная библиотека байтового кода (BCEL) - проект, спонсируемый Фонд Apache ранее под их Джакарта устав, чтобы предоставить простой API для декомпозиции, изменения и перекомпоновки двоичных файлов Ява классы (т.е. байт-код ). Проект был задуман и разработан Маркусом Дамом до того, как 27 октября 2001 года был официально передан в дар фонду Apache Jakarta.

Использует

BCEL предоставляет простую библиотеку, которая представляет внутренние агрегированные компоненты данного класса Java через его API в виде объектных конструкций (в отличие от дизассемблирования кодов операций нижнего уровня). Эти объекты также предоставляют операции для изменения двоичного байт-кода, а также для генерации нового байт-кода (путем внедрения нового кода в существующий код или посредством генерации новых классов в целом). Библиотека BCEL использовалась в нескольких различных приложениях, таких как :

  • Декомпиляция, обфускация и рефакторинг байт-кода Java
  • Производительность и профилирование
Вызовы инструментальных средств, которые фиксируют показатели производительности, могут быть введены в двоичные файлы классов Java для проверки данных о памяти / покрытии. (Например, введение инструментария в точках входа / выхода.)
  • Реализация семантики нового языка
Например, Аспектно-ориентированный дополнения к языку Java были реализованы с использованием BCEL для декомпозиции структур классов для точной идентификации, а затем снова при воссоздании класса путем введения кода, связанного с аспектами, обратно в двоичный файл. (Увидеть: AspectJ )
FindBugs использует BCEL для анализа байт-кода Java на предмет идиом кода, указывающих на ошибки.

Смотрите также

внешние ссылки