JDK поставляется с javap , который представляет собой инструмент для дизассемблирования байтового кода внутри файла класса. Возможно редактирование на уровне байтового кода. Взгляните на BCEL , java-библиотеку, предназначенную для чтения, управления и записи файлов классов.
Список инструментов и библиотек для редактирования байтового кода можно найти на java-net . Например, JBE , редактор байтового кода Java, который даже поставляется с графическим интерфейсом пользователя.
По моему опыту, jclasslib - одна из лучших программ просмотра байт-кода.
Что касается редакторов, то существует два типа: библиотеки для работы с байт-кодом и редакторы с графическим интерфейсом пользователя. Этот вопрос задавали несколько раз на SO, вы можете проверить ответы и ссылки, которые были предоставлены.
Только будьте осторожны, чтобы редактировать байт-код не так просто, как вы думаете. JVMS налагает множество ограничений на то, как должны быть файлы классов, и есть большая вероятность, что одно из ваших правок нарушит одно из них.
Проверьте эти другие вопросы:
Редактирование файла .class напрямую, игра с кодами операций
Да. Вы можете использовать команду javap
, включенную в JDK, чтобы увидеть байтовый код класса. Например:
javap -c com.mypackage.MyClass
Есть несколько библиотек и инструментов, которые помогут вам работать с байт-кодом Java, например ASM и Jasmin .
Для просмотра байткодов
Забудьте о javap! Лучший плагин, который я когда-либо использовал, - это «ASM - плагин Bytecode Outline для Eclipse»
http://asm.ow2.org/eclipse/index.html
Это от ASM (манипуляция с байт-кодом рамки).
Он показывает байт-коды (которые вы просили), элементы стека (стиль jvm) и то, как сгенерировать тот же результат (чтобы произвести те же байт-коды), используя методы фреймворка asm.
Еще лучше то, что это происходит, пока у вас выбран исходный код. Вам не нужно искать файл .class в каталоге bin, чтобы проверить его байт-код.
Чтобы отредактировать их
Используя код:
От руки: JBE