Frage

Ich bin auf der Suche nach einer gut gepflegten Java-Bytecode Manipulation Bibliothek mit einer intuitiven API. Es scheint es eine ganze Menge von ihnen heraus zu sein. Irgendwelche Vorschläge auf, welche versuchen?

War es hilfreich?

Lösung

Die beste Antwort auf Ihre Frage wird durch Ihre spezifischen Bedürfnisse und Ziele geregelt werden; wenn Sie erweitern können auf das, was Sie versuchen zu erreichen, kann ich vielleicht bieten eine maßgeschneiderte Antwort.

Statt dass aber in meiner Erfahrung ASM bietet wahrscheinlich die beste Kombination der Reife, Flexibilität und Einfachheit der Anwendung:

  • Es ist unter relativ aktiven Entwicklung. Obwohl die neueste Version von Juni 2009, Entwickler werden regelmäßig Commits ihre VCS machen
  • Es ist bereits weit verbreitet in einer Reihe von prominenten Java-Produkte, wie AspectJ, Groovy, Cobertura, und viele andere, die eine breite Benutzerbasis verspricht und damit eine große Gemeinschaft für die Unterstützung.
  • Es ist ziemlich gründlich dokumentiert, und es gibt eine Reihe von Tutorials, Anleitungen und Referenzdokumente beide von der OW2 Consortium und die Gemeinschaft.

N. B. Der Kommentar @Yuri links unten beschreibt eine Situation, ich habe persönlich noch nicht begegnet, sondern dass möglicherweise ein erhebliches Hindernis darstellen kann. Halten Sie seine Beobachtung / Erfahrung im Auge, während die verschiedenen Bytecode Manipulation Bibliotheken zu bewerten.

Andere Tipps

Das hängt wirklich auf, wie definieren Sie intuitive ;-) Ich begann mit ASM vor zwei Wochen für eine bestimmte Aufgabe auf meinem aktuellen Projekt und es funktionierte wie ein Charme. Es dauerte nur ein paar Stunden, um es zu verstehen und benutzen kann, aber ich würde die API intuitiv nicht genau nennen. Aber wenn Sie ein wenig über Java-Bytecode kennen und sind vertraut mit dem Besuchermuster, die Lernkurve ist nicht sehr hoch, meiner Meinung nach.

Ein weiterer Vorteil von ASM ist, dass es offenbar mit dem Standard-API zumindest in der Sun JDK, obwohl in einem anderen Paket (com.sun.xml.internal.ws.org.objectweb.asm und Subpackages) gebündelt wird.

Werfen Sie einen Blick auf diesen Artikel: http://www.pabrantes.net/blog/space/ Start / 2008-03-24 / 1

Ein wenig alt, aber immer noch relevant.

ASM Und Javassist sind die Gebrauchten jetzt. Bcel stirbt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top