Предложения по библиотеке манипулирования байт-кодом Java

StackOverflow https://stackoverflow.com/questions/2532215

Вопрос

Я ищу хорошо поддерживаемую библиотеку манипулирования байт-кодом Java с интуитивно понятным API.Кажется, их там довольно много.Есть предложения, какие из них попробовать?

Это было полезно?

Решение

Лучший ответ на ваш вопрос будет зависеть от ваших конкретных потребностей и целей;если вы сможете подробнее рассказать о том, чего пытаетесь достичь, я, возможно, смогу предложить более индивидуальный ответ.

Однако вместо этого, по моему опыту, КАК М предлагает, пожалуй, лучшее сочетание зрелости, гибкости и простоты использования:

  • Он находится в относительно активной разработке:хотя последний выпуск выпущен в июне 2009 года, разработчики регулярно вносят изменения в свои системы контроля версий.
  • Он уже широко используется в ряде известных продуктов Java, таких как AspectJ, Groovy, Cobertura и многих других, что обещает широкую базу пользователей и, следовательно, широкое сообщество для поддержки.
  • Он довольно подробно документирован, и существует ряд учебных пособий, руководств пользователя и справочных документов, доступных как на сайте, так и на сайте. Консорциум OW2 и сообщество в целом.

Н.Б. Комментарий @Yuri, оставленный ниже, описывает ситуацию, с которой лично я еще не сталкивался, но которая потенциально может стать серьезным препятствием.Учитывайте его наблюдения/опыт при оценке различных библиотек манипуляций с байт-кодом.

Другие советы

На самом деле это зависит от того, как вы определяете интуитивный ;-) Я начал использовать КАК М две недели назад для определенной задачи в моем текущем проекте, и это сработало как шарм.Мне потребовалось всего пара часов, чтобы понять это и научиться использовать, но я бы не назвал API интуитивно понятным.Но если вы немного разбираетесь в байт-коде Java и знакомы с шаблоном посетителей, кривая обучения не очень высока, по моему мнению.

Еще одним преимуществом ASM является то, что он, очевидно, включен в стандартный API, по крайней мере, в Sun JDK, хотя и в другом пакете (com.sun.xml.internal.ws.org.objectweb.asm и подпакетах).

Взгляните на эту статью:http://www.pabrantes.net/blog/space/start/2008-03-24/1

Немного староват, но все еще актуален.

ASM и Javassist сейчас наиболее часто используются.Бсел умирает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top