Codegenerierungsbibliothek Byte Buddy erreicht erste Hauptversion

Michael Thomas

© Shutterstock.com/AKIllustration

Das als Alternative zu den Bibliotheken für Byte-Code-Enhancement cglib und Javassist bezeichnete Byte Buddy ist in Version 1.0 erschienen. Das Projekt des frischgebackenen Java Champions Rafael Winterhalter, der ihm bereits den Gewinn des Duke’s Choice Award verdankt, ist eine Codegenerierungsbibliothek, die die Erstellung von Java-Klassen während der Laufzeit einer Java-Anwendung ohne Zuhilfenahme eines Compilers erlaubt.

Für die Nutzung von Byte Buddy ist Winterhalter zufolge weder ein Verständnis des Java-Bytecodes, noch des Klassendateiformats notwendig. Nichtsdestotrotz ist Byte Buddy bis auf die Ebene des Bytecodes beliebig anpassbar. Des Weiteren ist Byte Buddys API dezidiert nichtintrusiv und hinterlässt in den mit seiner Hilfe erstellten Klassen keine Spuren – daher auch der Geist als Logo des Projekts. Byte Buddy ist zwar in Java 6 geschrieben, erlaubt jedoch die Klassengenerierung für jede Java-Version. Als leichtgewichtige Bibliothek weist Byte Buddy abgesehen von dem Visitor-API der Bibliothek ASM keine Abhängigkeiten auf.

Die detaillierte Beschreibung des Hallo-Welt-Programms von Byte Buddy findet sich auf der Website des Projekts. Dort ist ebenfalls ein ausführliches, praktisch keine Fragen offenlassendes Tutorial zu finden. Wer mehr über die einfache Erstellung von Java-Agenten mit Byte Buddy erfahren möchte, dem sei darüber hinaus der entsprechende Artikel von Rafael Winterhalter auf dem Tech-Portal InfoQ ans Herz gelegt.

Aufmacherbild: ghosts with various expressions and poses von Shutterstock / Urheberrecht: AKIllustration

Verwandte Themen:

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: