Byte Code Engineering Library
| Jakarta BCEL | |
|---|---|
| Тип | Библиотека модификации байт-кодов |
| Разработчик | Apache Software Foundation |
| Написана на | Java |
| Операционная система | Кроссплатформенное программное обеспечение |
| Последняя версия | 6.5.0[1] (9 июня 2020) |
| Репозиторий | github.com/apache/common… |
| Лицензия | Apache License 2.0 |
| Сайт | jakarta.apache.org/bcel/ |
Byte Code Engineering Library (сокр. BCEL) — проект Apache Foundation, подпроект Jakarta, представляющий собой API для декомпиляции, изменения и повторной компиляции файлов классов Java (состоящих из байт-кодов). Проект изначально был задуман и разработан Маркусом Дамом, а впоследствии — безвозмездно передан Apache Jakarta foundation 27 октября 2001 года. На данный момент Java-ориентирован и не поддерживает байт-коды .NET, Python и т. д.
Использование
BCEL — простая библиотека, которая разбирает Java-класс на объекты существовавших в нём конструкций (в отличие от обычных дизассемблеров, которые просто генерируют ассемблерный код). Эти объекты поддерживают операции по изменению своих байт-кодов, а за одно и генерацию новых (вставкой их в существующий код или с помощью генерации нового класса целиком). Библиотека BCEL используется в реализации следующих функций приложений:
- Компиляция, декомпиляция и обфускация байт-кодов
- Производительность и профилирование
- Например, в код могут быть введены специальные фрагменты, замеряющие производительность или получающие информацию о работе части программы.
- Внедрение новой семантики языка
- К примеру, элементы аспектно-ориентированного программирования в Java были введены путём пересборки классов с помощью BCEL
См. также
Примечания
Ссылки
- Jakarta ByteCode Engineering Library — домашняя страница проекта BCEL
- BCEL-Based Project Listing — список проектов, использующих BCEL
- Apache Jakarta Home — сайт проекта Apache Jakarta
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.