Biblioteca de ingeniería de código de bytes - Byte Code Engineering Library

Apache Commons BCEL
Desarrollador (es) Fundación de software Apache
Lanzamiento estable
6.4.1 / 3 de octubre de 2019 ; Hace 20 meses ( 03/10/2019 )
Repositorio Edita esto en Wikidata
Escrito en Java
Sistema operativo Multiplataforma
Tipo Biblioteca de ingeniería de códigos de bytes
Licencia Licencia Apache 2.0
Sitio web commons .apache .org / bcel /

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