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. március 8., 17:57-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól.
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). Ezek az objektumok különböző műveleteket biztosítanak a bináris bájtkód módosításához épp úgy, mint az új bájtkód generálásához (új kód beszúrásához (injection) a létező kódon keresztül vagy új osztályok generálásához). A BCEL könyvtárat több különböző típusú alkalmazásban használják, mint pl.: 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 használja a BCEL-t a Java bájtkód analizálásánál hibákat okozó kód részletek azonosításához.

Lásd még

Jegyzetek

Külső hivatkozások