Инженерная библиотека байт-кода
Разработчик(и) | Фонд программного обеспечения Apache |
---|---|
Стабильная версия | 6.8.1 / 11 января 2024 г |
Репозиторий | |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | байт-кода Инженерная библиотека |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | общее достояние |
Библиотека разработки байт-кода ( BCEL ) — это проект, спонсируемый Apache Foundation ранее в соответствии с их уставом в Джакарте, с целью предоставления простого API для декомпозиции, изменения и перекомпоновки двоичных Java классов (т.е. байт-кода ). Проект был задуман и разработан Маркусом Дамом до того, как 27 октября 2001 года он был официально передан в дар фонду Apache Jakarta. Он является частью Apache Commons .
Использование
[ редактировать ]BCEL предоставляет простую библиотеку, которая предоставляет внутренние агрегатные компоненты данного класса Java через свой API как объектные конструкции (в отличие от дизассемблирования кодов операций нижнего уровня). Эти объекты также предоставляют операции по изменению двоичного байт-кода, а также генерации нового байт-кода (посредством внедрения нового кода в существующий код или путем создания новых классов вообще). Библиотека BCEL использовалась в нескольких различных приложениях, таких как :
- Декомпиляция, обфускация и рефакторинг байт-кода Java
- Производительность и профилирование
- Вызовы инструментирования, которые собирают показатели производительности, можно внедрить в двоичные файлы классов Java для проверки данных памяти/покрытия. (Например, внедрение инструментов в точках входа/выхода.)
- Реализация новой языковой семантики
- Например, аспектно-ориентированные дополнения к языку Java были реализованы с использованием BCEL для разложения структур классов для идентификации точек, а затем снова при воссоздании класса путем введения аспектно-ориентированного кода обратно в двоичный файл. (См.: АспектJ )
- FindBugs использует BCEL для анализа байт-кода Java на предмет идиом кода, указывающих на ошибки.
См. также
[ редактировать ]- ОбъектВеб ASM
- Явасист
Внешние ссылки
[ редактировать ]- Официальный сайт
- Список проектов на основе BCEL — список проектов, в которых используется библиотека BCEL.
- Домашняя страница Apache Jakarta — Домашняя страница Apache Jakarta.
- AspectJ — Домашняя страница проекта AspectJ. (Один из широко известных проектов, в котором используется BCEL.)