Domanda

Sto cercando una libreria di manipolazione bytecode Java ben curato con un'API intuitiva. Sembra che ci siano un sacco di loro là fuori. Qualche suggerimento su quali provare?

È stato utile?

Soluzione

La migliore risposta alla tua domanda sarà disciplinato dalle vostre esigenze e obiettivi specifici; se è possibile espandere su ciò che si sta cercando di realizzare, posso forse offrire una risposta più su misura.

Al posto di questo, però, nella mia esperienza, ASM offre probabilmente la migliore combinazione di maturità, flessibilità e facilità d'uso:

  • E 'in fase di sviluppo relativamente attivo:., Anche se l'ultima release è dal giugno 2009, gli sviluppatori stanno facendo regolarmente impegna alla loro VCS
  • E 'già in largo uso in un certo numero di prodotti Java di spicco, come AspectJ, Groovy, Cobertura, e molti altri, che promette una vasta base di utenti e, quindi, una vasta comunità di sostegno.
  • È abbastanza accuratamente documentato, e ci sono una serie di tutorial, guide per l'utente, e documenti di riferimento disponibili sia dal OW2 consorzio e la comunità in generale.

NB. Il commento @Yuri basso a sinistra descrive una situazione Io personalmente non ho ancora incontrato, ma che potenzialmente possono rappresentare un ostacolo significativo. Mantenere la sua osservazione / esperienza a mente durante la valutazione delle varie librerie di manipolazione bytecode.

Altri suggerimenti

Che in realtà dipende da come si definiscono intuitivo ;-) ho iniziato ad usare ASM due settimane fa per un determinato compito sul mio progetto in corso e ha funzionato come un fascino. Mi ci sono voluti solo un paio d'ore per capire ed essere in grado di usarlo, ma non vorrei esattamente chiamare l'API intuitiva. Ma se si conosce un po 'di bytecode Java e hanno familiarità con il modello visitatore, la curva di apprendimento non è molto alta, IMO.

Un altro vantaggio è che ASM è apparentemente in dotazione alla API standard almeno nella Sun JDK, anche se in un pacchetto differente (com.sun.xml.internal.ws.org.objectweb.asm e sottopacchetti).

Date un'occhiata a questo articolo: http://www.pabrantes.net/blog/space/ avviare / 2008-03-24 / 1

Un po 'vecchio ma ancora attuale.

E ASM Javassist sono quelli più utilizzati oggi. BCEL sta morendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top