инструменты/java/просмотрщик байткода
// javanew

просмотрщик байткода

инспекция инструкций jvm из .class файлов через javap

// о инструменте

Просмотрщик байткода запускает javap -verbose на загруженном .class файле и показывает инструкции JVM: записи в пуле констант, дескрипторы методов, таблицы локальных переменных и каждый опкод с операндами. Тот же вывод, что вы получаете при запуске javap локально — доступен мгновенно без установки JDK.

// когда использовать

  • Убедиться, что оптимизация компилятора (constant folding, inlining) действительно произошла
  • Отладить ClassFormatError или VerifyError, напрямую изучив байткод
  • Понять, как Java-конструкции (лямбды, try-with-resources, switch expressions) транслируются в опкоды JVM
  • Исследовать структуру class-файла, который не удаётся красиво декомпилировать

// faq

Чем просмотрщик байткода отличается от декомпилятора?
Декомпилятор восстанавливает высокоуровневый Java-код из байткода — читаемый, но приближённый. Просмотрщик байткода показывает точные JVM-инструкции, хранящиеся в .class файле: опкоды (invokevirtual, aload_0 и т.д.), пул констант и информацию о стек-фреймах. Используй декомпилятор, чтобы понять, что делает код; используй просмотрщик байткода, чтобы понять, как именно JVM его выполняет.
Почему нужен Pro-план?
javap — это инструмент командной строки из JDK, который не может работать в браузере. Файл .class отправляется на наш сервер, анализируется в памяти и возвращается. Файл никогда не сохраняется и не логируется.
// история
Pro Облачная синхронизация — подробнее
операций пока нет