Libreria di ingegneria del codice byte - Byte Code Engineering Library
| Sviluppatore/i | Apache Software Foundation |
|---|---|
| Rilascio stabile | 6.4.1 / 3 ottobre 2019
|
| Repository |
|
| Scritto in | Giava |
| Sistema operativo | Multipiattaforma |
| genere | Libreria di ingegneria del codice di byte |
| Licenza | Licenza Apache 2.0 |
| Sito web | commons |
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
- Apache Commons BCEL - La home page del progetto BCEL.
- Elenco progetti basato su BCEL - Un elenco di progetti che utilizzano la libreria BCEL.
- Apache Jakarta Home - La home page di Apache Jakarta.
- AspectJ - La home page del progetto AspectJ. (Uno dei progetti ad alta visibilità che fa uso di BCEL.)