Libreria di ingegneria del codice byte - Byte Code Engineering Library

Apache Commons BCEL
Sviluppatore/i Apache Software Foundation
Rilascio stabile
6.4.1 / 3 ottobre 2019 ; 20 mesi fa ( 2019-10-03 )
Repository Modificalo su Wikidata
Scritto in Giava
Sistema operativo Multipiattaforma
genere Libreria di ingegneria del codice di byte
Licenza Licenza Apache 2.0
Sito web commons .apache .org /bcel /

La Byte Code Engineering Library ( BCEL ) è un progetto sponsorizzato dalla Apache Foundation precedentemente nell'ambito del suo statuto di Jakarta per fornire una semplice API per la decomposizione, la modifica e la ricomposizione di classi Java binarie (cioè bytecode ). Il progetto è stato ideato e sviluppato da Markus Dahm prima di essere donato ufficialmente alla fondazione Apache Jakarta il 27 ottobre 2001.

Usi

BCEL fornisce una semplice libreria che espone i componenti aggregati interni di una data classe Java tramite la sua API come costrutti di oggetti (al contrario del disassemblaggio degli opcode di livello inferiore). Questi oggetti espongono anche operazioni per modificare il bytecode binario, oltre a generare nuovo bytecode (tramite iniezione di nuovo codice nel codice esistente o attraverso la generazione di nuove classi). La libreria BCEL è stata utilizzata in diverse applicazioni diverse, come :

  • Decompilazione, offuscamento e refactoring del bytecode Java
  • Prestazioni e profilazione
Le chiamate di strumentazione che acquisiscono le metriche delle prestazioni possono essere iniettate nei binari della classe Java per esaminare i dati di memoria/copertura. (Ad esempio, iniettando la strumentazione nei punti di ingresso/uscita.)
  • Implementazione della nuova semantica linguistica
Ad esempio, le aggiunte orientate agli aspetti al linguaggio Java sono state implementate utilizzando BCEL per scomporre le strutture di classe per l'identificazione dei punti tagliati e poi di nuovo durante la ricostituzione della classe iniettando nuovamente il codice relativo all'aspetto nel binario. (Vedi: AspettoJ )
FindBugs utilizza BCEL per analizzare il bytecode Java per gli idiomi del codice che indicano bug.

Guarda anche

link esterno