Pergunta

Estou procurando uma biblioteca de manipulação de bytecode Java bem mantida com uma API intuitiva.Parece que há muitos deles por aí.Alguma sugestão sobre quais tentar?

Foi útil?

Solução

A melhor resposta para sua pergunta será regida por suas necessidades e objetivos específicos; Se você pode expandir o que está tentando realizar, talvez eu possa oferecer uma resposta mais personalizada.

Em vez disso, no entanto, na minha experiência, ASM Oferece provavelmente a melhor combinação de maturidade, flexibilidade e facilidade de uso:

  • Está sob desenvolvimento relativamente ativo: mesmo que o último lançamento seja de junho de 2009, os desenvolvedores estão fazendo compromissos regularmente com seus VCs.
  • Já está em uso amplo em vários produtos Java proeminentes, como aspecto, groovy, cobertura e muitos outros, que promete uma ampla base de usuários e, portanto, uma ampla comunidade de apoio.
  • Está bastante documentado e há vários tutoriais, guias de usuário e documentos de referência disponíveis, ambos do OW2 Consortium e a comunidade em geral.

Nb O comentário @yuri deixado abaixo descreve uma situação que eu pessoalmente ainda não encontrei, mas isso pode potencialmente representar um obstáculo significativo. Lembre -se de sua observação/experiência ao avaliar as várias bibliotecas de manipulação de bytecode.

Outras dicas

Isso realmente depende de como você define intuitivo ;-) Comecei a usar ASM Há duas semanas, para uma certa tarefa no meu projeto atual e funcionou como um encanto. Levei apenas algumas horas para entendê -lo e ser capaz de usá -lo, mas eu não chamaria exatamente a API de intuitiva. Mas se você souber um pouco sobre Java Bytecode e conhece o padrão do visitante, a curva de aprendizado não é muito alta, IMO.

Outra vantagem do ASM é que ele é aparentemente agrupado com a API padrão, pelo menos no Sun JDK, embora em um pacote diferente (com.sun.xml.internal.ws.org.objectweb.asm e subpackagens).

Dê uma olhada neste artigo :http://www.pabrantes.net/blog/space/start/2008-03-24/1

Um pouco antigo, mas ainda relevante.

ASM e Javassist são os mais utilizados atualmente.Bcel está morrendo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top