Инженерная библиотека байтового кода - Byte Code Engineering Library
эта статья не цитировать Любые источники.Январь 2013) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчики) | Фонд программного обеспечения Apache |
---|---|
Стабильный выпуск | 6.4.1 / 3 октября 2019 г. |
Репозиторий | |
Написано в | Ява |
Операционная система | Кроссплатформенность |
Тип | Байт-код Инженерная библиотека |
Лицензия | Лицензия Apache 2.0 |
Интернет сайт | общие |
В Инженерная библиотека байтового кода (BCEL) - проект, спонсируемый Фонд Apache ранее под их Джакарта устав, чтобы предоставить простой API для декомпозиции, изменения и перекомпоновки двоичных файлов Ява классы (т.е. байт-код ). Проект был задуман и разработан Маркусом Дамом до того, как 27 октября 2001 года был официально передан в дар фонду Apache Jakarta.
Использует
BCEL предоставляет простую библиотеку, которая представляет внутренние агрегированные компоненты данного класса Java через его API в виде объектных конструкций (в отличие от дизассемблирования кодов операций нижнего уровня). Эти объекты также предоставляют операции для изменения двоичного байт-кода, а также для генерации нового байт-кода (путем внедрения нового кода в существующий код или посредством генерации новых классов в целом). Библиотека BCEL использовалась в нескольких различных приложениях, таких как :
- Декомпиляция, обфускация и рефакторинг байт-кода Java
- Производительность и профилирование
- Вызовы инструментальных средств, которые фиксируют показатели производительности, могут быть введены в двоичные файлы классов Java для проверки данных о памяти / покрытии. (Например, введение инструментария в точках входа / выхода.)
- Реализация семантики нового языка
- Например, Аспектно-ориентированный дополнения к языку Java были реализованы с использованием BCEL для декомпозиции структур классов для точной идентификации, а затем снова при воссоздании класса путем введения кода, связанного с аспектами, обратно в двоичный файл. (Увидеть: AspectJ )
- FindBugs использует BCEL для анализа байт-кода Java на предмет идиом кода, указывающих на ошибки.
Смотрите также
внешние ссылки
- Apache Commons BCEL - Домашняя страница проекта BCEL.
- Листинг проектов на основе BCEL - Список проектов, в которых используется библиотека BCEL.
- Apache Jakarta Home - Домашняя страница Apache Jakarta.
- AspectJ - Домашняя страница проекта AspectJ. (Один из наиболее заметных проектов, в котором используется BCEL.)