Biblioteca de ingeniería de código de bytes - Byte Code Engineering Library
Desarrollador (es) | Fundación de software Apache |
---|---|
Lanzamiento estable | 6.4.1 / 3 de octubre de 2019
|
Repositorio | |
Escrito en | Java |
Sistema operativo | Multiplataforma |
Tipo | Biblioteca de ingeniería de códigos de bytes |
Licencia | Licencia Apache 2.0 |
Sitio web | commons |
El Código Biblioteca de ingeniería Byte ( BCEL ) es un proyecto patrocinado por la Fundación Apache anteriormente con su Jakarta Carta para proporcionar una API simple para descomponer, modificar y recomponer binarios Java clases (es decir código de bytes ). El proyecto fue concebido y desarrollado por Markus Dahm antes de ser donado oficialmente a la fundación Apache Jakarta el 27 de octubre de 2001.
Usos
BCEL proporciona una biblioteca simple que expone los componentes agregados internos de una clase Java determinada a través de su API como construcciones de objetos (a diferencia del desensamblaje de los códigos de operación de nivel inferior). Estos objetos también exponen operaciones para modificar el código de bytes binario, así como generar un nuevo código de bytes (mediante la inyección de nuevo código en el código existente, o mediante la generación de nuevas clases en conjunto). La biblioteca BCEL se ha utilizado en varias aplicaciones diversas, como :
- Descompilación, ofuscación y refactorización de códigos de bytes de Java
- Rendimiento y creación de perfiles
- Las llamadas de instrumentación que capturan métricas de rendimiento se pueden inyectar en binarios de clase Java para examinar los datos de memoria / cobertura. (Por ejemplo, inyectar instrumentación en los puntos de entrada / salida).
- Implementación de semántica de nuevos lenguajes
- Por ejemplo, las adiciones orientadas a aspectos al lenguaje Java se han implementado utilizando BCEL para descomponer las estructuras de clase para la identificación de puntos de corte, y luego nuevamente al reconstituir la clase inyectando código relacionado con los aspectos nuevamente en el binario. (Ver: AspectJ )
- FindBugs utiliza BCEL para analizar el código de bytes de Java en busca de modismos de código que indiquen errores.
Ver también
enlaces externos
- Apache Commons BCEL - La página de inicio del proyecto BCEL.
- Listado de proyectos basado en BCEL : una lista de proyectos que utilizan la biblioteca BCEL.
- Inicio de Apache Jakarta: la página de inicio de Apache Jakarta.
- AspectJ - La página de inicio del proyecto AspectJ. (Uno de los proyectos de alta visibilidad que hace uso de BCEL).