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