Pregunta

Estoy buscando una biblioteca de manipulación de código de bytes de Java bien mantenido con una API intuitiva. Parece que hay un buen montón de ellos por ahí. Cualquier sugerencia sobre cuáles probar?

¿Fue útil?

Solución

La mejor respuesta a su pregunta se regirá por sus necesidades y objetivos específicos; si se puede ampliar lo que estamos tratando de lograr, que quizá pueda ofrecer una respuesta más adaptada.

En lugar de eso, sin embargo, en mi experiencia, ASM ofertas probablemente la mejor combinación de madurez, flexibilidad y facilidad de uso:

  • Es en fase de desarrollo relativamente activa:. A pesar de que la última versión es de junio de 2009, los desarrolladores están haciendo regularmente compromete a su VCS
  • Ya está en amplio uso en un número de prominentes productos Java, como AspectJ, maravilloso, Cobertura, y muchos otros, que promete una amplia base de usuarios y por lo tanto una gran comunidad de apoyo.
  • Es bastante bien documentado, y hay una serie de tutoriales, guías de usuario, y los documentos de referencia disponibles tanto desde el OW2 consorcio y la comunidad en general.

N.B. El comentario @Yuri dejó a continuación describe una situación que personalmente no he encontrado, pero que puede suponer potencialmente un obstáculo significativo. Mantenga su observación / experiencia en cuenta al evaluar las distintas bibliotecas de manipulación de código de bytes.

Otros consejos

Eso realmente depende de cómo se defina intuitiva ;-) empecé a usar ASM hace dos semanas para una determinada tarea en mi proyecto actual y funcionó como un encanto. Sólo me tomó un par de horas para entenderlo y poder usarlo, pero yo no lo llamaría exactamente lo intuitivo API. Pero si usted sabe un poco acerca de código de bytes de Java y está familiarizado con el patrón de visitante, la curva de aprendizaje no es muy alta, la OMI.

Otra de las ventajas de la MPE es que aparentemente está incluido con la API estándar al menos en el JDK de Sun, aunque en un paquete diferente (com.sun.xml.internal.ws.org.objectweb.asm y sub-paquetes).

Tome un vistazo a este artículo: http://www.pabrantes.net/blog/space/ iniciar / 2008-03-24 / 1

Un poco viejo, pero sigue siendo relevante.

ASM Y Javassist son los más utilizados actualmente. BCEL está muriendo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top