Ugrás a tartalomhoz

Byte Code Engineering Library

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Zafir (vitalap | szerkesztései) 2012. február 29., 13:42-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Használat)
Commons BCEL
FejlesztőApache Software Foundation
Legfrissebb stabil kiadás6.10.0 (stabil verzió, 2024. július 23.)[1]
Programozási nyelvJava
Operációs rendszerplatformfüggetlen
Kategóriabájtkód kezelő könyvtár
LicencApache Licenc 2.0
A Commons BCEL weboldala

A Byte Code Engineering Library (BCEL) egy projekt, melyet az Apache Software Foundation szponzorál a Commons projekt részeként, hogy biztosítson egy egyszerű API-t kibontásához, módosításhoz, majd újra csomagolásához bináris Java osztályok kezeléséhez (pl. bájtkód).

A projektet eredetileg Markus Dahm fejlesztette, mielőtt hivatalosan az Apache Jakarta alapítványnak adományozta volna 2001. október 27-én. BCEL java-központú és jelenleg nem támogat egyéb bájtkód megvalósítást (pl. .NET bájtkód, Python bájtkód).

2011. júliusában került át az Apache Commons alá.[2]

Használat

BCEL provides a simple library that exposes the internal aggregate components of a given Java class through its API as object constructs (as opposed to the disassembly of the lower-level opcodes). These objects also expose operations for modifying the binary bytecode, as well as generating new bytecode (via injection of new code into the existing code, or through generation of new classes altogether.) A BCEL könyvtárat több különböző típusú alkalmazásban használják, mint pl.:

  • Java bájt kód visszafejtés (decompiling), programkód álcázás (obfuscation), és programkód átszervezés (refactoring)
  • teljesítmény- és sebességoptimalizálás
Instrumentation calls that capture performance metrics can be injected into Java class binaries to examine memory/coverage data. (For example, injecting instrumentation at entry/exit points.)
  • új nyelvi szemantikák megvalósítása
For example, Aspect-Oriented additions to the Java language have been implemented by using BCEL to decompose class structures for point-cut identification, and then again when reconstituting the class by injecting aspect-related code back into the binary. (Lásd: AspectJ)
FindBugs uses BCEL to analyze Java bytecode for code idioms which indicate bugs.

Lásd még

Jegyzetek

Külső hivatkozások