stringtranslate.com

Biblioteca de ingeniería de código de bytes

Byte Code Engineering Library ( BCEL ) es un proyecto patrocinado por la Fundación Apache, anteriormente bajo su estatuto de Yakarta , para proporcionar una API simple para descomponer, modificar y recomponer clases binarias de Java (es decir, bytecode ). El proyecto fue concebido y desarrollado por Markus Dahm antes de ser donado oficialmente a la fundación Apache de Yakarta el 27 de octubre de 2001. Es parte de Apache Commons .

Usos

BCEL proporciona una biblioteca sencilla que expone los componentes agregados internos de una clase Java determinada a través de su API como construcciones de objetos (en lugar de desensamblar 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 para generar un nuevo código de bytes (mediante la inyección de un 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:

Las llamadas de instrumentación que capturan métricas de rendimiento se pueden inyectar en binarios de clase Java para examinar datos de memoria/cobertura. (Por ejemplo, inyectar instrumentación en puntos de entrada/salida).
Por ejemplo, se han implementado adiciones orientadas a aspectos al lenguaje Java utilizando BCEL para descomponer las estructuras de clase para la identificación de puntos de corte, y luego nuevamente al reconstruir la clase inyectando código relacionado con el aspecto 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.

Véase también

Enlaces externos