Bibliothèque d'ingénierie de code d'octet - Byte Code Engineering Library

Apache Commons BCEL
Développeur(s) Fondation logicielle Apache
Version stable
6.4.1 / 3 octobre 2019 ; il y a 20 mois ( 2019-10-03 )
Dépôt Modifiez ceci sur Wikidata
Écrit en Java
Système opérateur Multiplateforme
Taper Bibliothèque d'ingénierie de bytecode
Licence Licence Apache 2.0
Site Internet communs .apache .org /bcel /

La Byte Code Engineering Library ( BCEL ) est un projet parrainé par la Fondation Apache précédemment dans le cadre de leur charte Jakarta pour fournir une API simple pour décomposer, modifier et recomposer des classes Java binaires (c'est-à-dire bytecode ). Le projet a été conçu et développé par Markus Dahm avant d'être officiellement donné à la fondation Apache Jakarta le 27 octobre 2001.

Les usages

BCEL fournit une bibliothèque simple qui expose les composants agrégés internes d'une classe Java donnée via son API en tant que constructions d'objets (par opposition au désassemblage des opcodes de niveau inférieur). Ces objets exposent également des opérations pour modifier le bytecode binaire, ainsi que pour générer un nouveau bytecode (via l'injection de nouveau code dans le code existant, ou par la génération de nouvelles classes.) La bibliothèque BCEL a été utilisée dans plusieurs applications diverses, telles que :

  • Décompilation, obscurcissement et refactorisation du bytecode Java
  • Performance et profilage
Les appels d'instrumentation qui capturent les métriques de performances peuvent être injectés dans des binaires de classe Java pour examiner les données de mémoire/couverture. (Par exemple, l'injection d'instruments aux points d'entrée/sortie.)
  • Implémentation de la nouvelle sémantique du langage
Par exemple, des ajouts orientés aspect au langage Java ont été implémentés en utilisant BCEL pour décomposer les structures de classe pour l'identification par points, puis à nouveau lors de la reconstitution de la classe en réinjectant du code lié à l'aspect dans le binaire. (Voir : AspectJ )
FindBugs utilise BCEL pour analyser le bytecode Java pour les idiomes de code qui indiquent des bogues.

Voir également

Liens externes

  • Apache Commons BCEL - La page d'accueil du projet BCEL.
  • Liste de projets basée sur BCEL - Une liste de projets qui utilisent la bibliothèque BCEL.
  • Apache Jakarta Home - La page d'accueil Apache Jakarta.
  • AspectJ - La page d'accueil du projet AspectJ. (L'un des projets à haute visibilité qui utilise BCEL.)