Byte Code Engineering Library | это... Что такое Byte Code Engineering Library? (original) (raw)
Jakarta BCEL
Тип | Библиотека модификации байт-кодов |
---|---|
Разработчик | Apache Software Foundation |
Написана на | Java |
Операционная система | Кроссплатформенное программное обеспечение |
Последняя версия | 5.2 (6 июня 2010) |
Лицензия | Apache License 2.0 |
Сайт | http://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
Apache Software Foundation | |
---|---|
Проекты верхнего уровня | ActiveMQ • Ant • Apache HTTP Server • APR • Beehive • Cassandra • Cayenne • Camel • Commons • Cocoon • CouchDB • DB • Directory • Excalibur • Forrest • Geronimo • Gump • Hadoop • Harmony • HBase • HiveMind • HttpComponents • iBATIS • Jackrabbit • James • JMeter • Lenya • Maven • Mina • mod perl • MyFaces • Nutch • OFBiz • OpenOffice.org • POI • Portals • Santuario • ServiceMix • Shale • Shiro • SpamAssassin • Struts • Subversion • Tapestry • Tcl • Tomcat • Turbine • Velocity • WebWork 2 • Wicket • Xalan • Xerces • XMLBeans |
Подпроекты | Apache Commons BCEL • BSF • JCS Apache Lucene Lucene Java • Lucene4c • Lucy• Solr Apache DB Derby • Torque • DdlUtils • OJB • JDO |
Apache Web Services | Axis • Axis2 • CXF • WS-Commons • EWS • JaxMe • jUDDI • Kandula • Mirae • Muse • Pubscribe • Sandesha • Scout • SOAP • Synapse • TSIK • Tuscany • Woden • WSIF • WSRF • WSS4J • XML-RPC |
Другие проекты | Batik • FOP •Log4j |
Развивающиеся проекты (Incubator) | XAP • River • OpenEJB • OpenJPA • Graffito • Tuscany • Log4Net • Roller • Felix • Abdera • CeltiXfire • FtpServer • Heraldry • Ivy • JuiCE • Kabuki • Lokahi • Lucene.Net • mod_ftp • NMaven • Ode • stdcxx • Woden • WSRP4J • Yoko • WADI • Qpid • stdcxx • TripleSoup • UIMA• Adobe Flex |
Списанные проекты (Attic) | AxKit • Cactus • ECS • Jakarta • ORO • Regexp • Slide • Taglibs |
Лицензия: Лицензия Apache • Сайт: apache.org |