Byte Code Engineering Library (сокр. BCEL) – проект Apache Foundation, подпроект Jakarta, представляющий собой API для декомпиляции, изменения и повторной компиляции файлов классов Java (состоящих из байт-кодов).
Проект изначально был задуман и разработан Маркусом Дамом, а впоследствии – безвозмездно передан Apache Jakarta foundation 27 октября 2001 года. На данный момент Java-ориентирован и не поддерживает байт-коды Microsoft .NET Framework, Python и т. д..
Byte Code Engineering Library является простой библиотекой, которая разбирает Java-класс на объекты существовавших в нём конструкций (в отличие от обычных дизассемблеров, которые просто генерируют ассемблерный код). Эти объекты поддерживают операции по изменению своих байт-кодов, а за одно и генерацию новых (вставкой их в существующий код или с помощью генерации нового класса целиком). Библиотека Byte Code Engineering Library используется в реализации следующих функций приложений:
Ссылки