Из Википедии, бесплатной энциклопедии
  (Перенаправлено из BCEL )
Перейти к навигации Перейти к поиску

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.)