2013-05-27 5 views
15

Я работаю над обработкой/генерацией байт-кода в Java, и мне просто интересно, есть ли простой способ проверить байт-код. Я не хочу декомпилировать файл, я бы хотел посмотреть на скомпилированный байт-код. Мне не нужно его редактировать. Любые ссылки или программы для этого будут приемлемыми ответами.Можно ли просмотреть файлы классов Java bytecode

+0

Обычно вы можете делать это прямо из вашей среды разработки. Может быть, с небольшой помощью от плагина. – maba

+2

Я думаю, что 'javap' - это то, что вы ищете. Команда, которая поставляется вместе с JDK. –

+0

try javap -c classfile – Satya

ответ

2

Я работал над decompiler, который имеет режим вывода байт-кода с цветовым кодированием (который я нахожу гораздо более читаемым, чем javap). Он также может выводить код Java или промежуточный «байт-код AST».

2

The javap command-line tool, который поставляется вместе с Oracle JDK, дает подробный текстовый дамп .class файлов вместе с содержимым байт-кода с постоянным пулом и всеми функциями. Просто запустите его с -v, чтобы получить полную дамп.

+0

, но я хочу посмотреть, что читает компилятор, когда он читает файл, чтобы я мог создавать свои собственные синтетические классы. – Popgalop

+0

@Popgalop, что читает компилятор, является фактическим байтовым кодом, который не является текстовым форматом. Я думаю, вы можете открыть его в шестнадцатеричном редакторе и использовать [эту ссылку] (http://docs.oracle.com/javase/specs/jvms/se5.0/html/ClassFile.doc.html), чтобы самостоятельно разобрать его , но если вы хотите, чтобы читаемый человеком дамп, 'javap -v' является ответом. – Oak

6

Не уверен, что именно вам нужно, но кроме javap, что инструмент командной строки для отображения байткод, вы можете посмотреть на javassist, asm и cglib - они позволяют анализировать байткод с Java кодом ,

39

Поскольку вы хотели бы руководствоваться какой-либо программой, которая может легко показать вам байтовый код, то мое предложение - использовать IntelliJ IDEA, поскольку оно имеет встроенную поддержку для просмотра байтового кода.

Вот пример того, как это сделать (это также может быть сопоставлено с некоторыми клавишами выбора):

enter image description here

enter image description here

Это очень легко, и это, безусловно, может быть сделано в eclipse или NetBeans.

+0

где номера строк? Что такое L0, L1 .. означает ???? – voipp

+0

Возможно ли это в студии Android? По крайней мере, для класса compield для JVM (например, локальные тесты единиц и т. Д.). – PSIXO

+0

@PSIXO Я не знаю, я использую IntelliJ as-is. – maba

Смежные вопросы