Question

Je suis à la recherche d'une bibliothèque de manipulation de bytecode Java bien entretenu avec une API intuitive. Il semble y avoir beaucoup d'entre eux là-bas. Toute suggestion sur laquelle les essayer?

Était-ce utile?

La solution

La meilleure réponse à votre question sera régie par vos besoins et objectifs spécifiques; si vous pouvez étendre sur ce que vous essayez d'accomplir, je peux peut-être apporter une réponse plus adaptée.

Au lieu de cela, cependant, dans mon expérience, ASM offre probablement la meilleure combinaison de la maturité, la flexibilité et la facilité d'utilisation:

  • Il est en cours de développement relativement actif. Même si la dernière version est de Juin 2009, les développeurs font régulièrement leur commits VCS
  • Il est déjà largement utilisé dans un certain nombre de produits Java de premier plan, tels que AspectJ, Groovy, Cobertura, et bien d'autres, qui promet un grand nombre d'utilisateurs et donc une large communauté de soutien.
  • Il est assez documenté à fond, et il y a un certain nombre de tutoriels, guides d'utilisation, et les documents de référence disponibles à la fois de la OW2 consortium et la communauté en général.

N.B.. Le commentaire ci-dessous décrit @Yuri gauche une situation que j'ai personnellement pas encore rencontré, mais qui peut poser potentiellement un obstacle important. Gardez son observation / expérience à l'esprit tout en évaluant les différentes bibliothèques de manipulation de bytecode.

Autres conseils

Cela dépend en fait de la façon dont vous définissez intuitive ;-) Je commencé à utiliser ASM il y a deux semaines pour une tâche sur mon projet en cours et cela a fonctionné comme un charme. Il ne m'a fallu que quelques heures pour comprendre et pouvoir l'utiliser, mais je ne dirais pas exactement l'API intuitive. Mais si vous connaissez un peu bytecode Java et sont familiers avec le motif des visiteurs, la courbe d'apprentissage est pas très élevé, l'OMI.

Un autre avantage de l'ASM est qu'il est apparemment fourni avec l'API standard du moins dans le JDK Sun, bien que dans un paquet différent (de com.sun.xml.internal.ws.org.objectweb.asm et sous-paquets).

Jetez un oeil à cet article: http://www.pabrantes.net/blog/space/ start / 2008-03-24 / 1

Un peu vieux mais toujours d'actualité.

ASM et Javassist sont les plus utilisés aujourd'hui. Bcel est en train de mourir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top