Byte Code Engineering Library
Commons BCEL | |
Fejlesztő | Apache Software Foundation |
Legfrissebb stabil kiadás | 6.10.0 (stabil verzió, 2024. július 23.)[1] |
Programozási nyelv | Java |
Operációs rendszer | platformfüggetlen |
Kategória | bájtkód kezelő könyvtár |
Licenc | Apache Licenc 2.0 |
A Commons BCEL weboldala |
Ez a szócikk/szakasz most épül, még dolgoznak az első verzión! |
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
A BCEL egy egyszerű objektum könyvtárat nyújt, amely segítségével egy adott Java osztály belső összetett komponensei felderíthetők egy API segítségével (szemben az alacsony szintű opcode-ok visszafejtésével). 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.:
- 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
- ↑ https://github.com/apache/commons-bcel/releases/tag/rel%2Fcommons-bcel-6.10.0. (Hozzáférés: 2024. december 11.)
- ↑ Commons alá átkerülés
Külső hivatkozások
- Jakarta ByteCode Engineering Library - BCEL projekt hivatalos honlapja.
- BCEL-Based Project Listing - A listing of projects that make use of the BCEL Library.
- Apache Commons Home - az Apache Commons honlapja.
- AspectJ - az AspectJ projekt honlapja. (One of the high-visibility projects that makes use of BCEL.)