Подтвердить что ты не робот

Как просмотреть код байта Java в eclipse IDE?

Иногда в Eclipse я нажимаю комбинацию клавиш, которые переводят меня на страницу редактора, которая отображает содержимое моего .class файла (байт-код). Кажется, я никогда не помню, что такое комбинация клавиш.

Может кто-нибудь, пожалуйста, дайте мне знать?

Или, другими словами, как можно увидеть собственный байт-код?

4b9b3361

Ответ 1

Средство просмотра файлов класса Eclipse по умолчанию показывает источник (см. ответ VonC), если он был связан с двоичными файлами, в противном случае он дает javap-подобный вид класса (с возможностью подключения источника). Я предполагаю, что это последнее, что вы ищете.

Я никогда не нашел способ чисто заставить Eclipse показать этот вывод, а не связанный источник. Возможно, вам нужен плагин Eclipse, который предоставляет Javap-функции (или интерфейс для javap). Посмотрите на плагины, в которых они "разбирают" (в отличие от "декомпилировать", например, jad).

Запрет подключаемого модуля, возможно, вы можете настроить внешний инструмент для выполнения javap, но он может плохо воспроизводиться с другими функциями eclipse.

Изменить:. Позвольте мне пояснить выше: если вы нажмете F3, Eclipse выполнит следующее (как правило, фактическая процедура может немного отличаться):

  • Разрешает цель (если вы выбираете файл Java, это будет сам файл Java, если вы выбираете или ваш курсор находится над именем класса, это будет объявление класса, подобное для объявления метода и т.д.)..
  • Ищет путь сборки (тот же самый проект) для файла Java, содержащего цель. Если найден, откроется редактор для записи, отображающий этот исходный файл Java.
  • Для объявлений класса/метода он продолжает поиск ссылок на пути сборки для файла класса, содержащего объявление. Если он найден, то

    a) Если к файлу класса подключен источник, откройте редактор только для чтения связанного файла Java.

    b) Если в файле класса нет источника, подключенного к нему, откройте панель только для чтения, показывающую дизассемблированный (javap-подобный) байт-код скомпилированного файла класса.

Мое предположение было бы то, что вы думаете, что выделенная последовательность клавиш на 3.b), но я не думаю, что есть. Но опять же, я хотел бы, чтобы меня здесь неправильно доказали.

Ответ 2

Вы можете использовать плагин ASM 4.0.

enter image description here

Установка

Плагин Bytecode Outline может быть установлен из Eclipse Update Manager с сайтом обновления ObjectWeb Eclipse http://download.forge.objectweb.org/eclipse-update/ В качестве альтернативы, плагин можно загрузить с сайта ObjectWeb Forge и установить вручную в каталоге плагинов Eclipse.

Использование

Чтобы увидеть байт-код текущего файла .java или .class:

Окно → Показать вид → Другое → Java → Bytecode

Чтобы сравнить байт-код двух файлов .java или .class:

выберите два файла *.class или *.java → щелкните правой кнопкой мыши → Сравнить с → Каждый другой байт-код

или

выберите один *.class или *.java файл → щелкните правой кнопкой мыши → Сравнить с → Другим классным байткодом

http://asm.ow2.org/eclipse/index.html

Ответ 3

Используя следующую внешнюю конфигурацию инструмента, мы можем просмотреть java-байтовый код в eclipse с помощью javap:

введите описание изображения здесь

Чтобы получить всплывающее всплывающее окно, выберите Run и выберите External Tools и выберите External Tools configuration...

введите описание изображения здесь

${system_path:javap} используется для нахождения javap в JDK, используемом Eclipse. Вместо этого вы можете использовать абсолютный путь к javap.

${project_loc} возвращает абсолютный путь к проекту. Это используется, поскольку я не мог найти переменную pre-define для использования, чтобы найти файл .class ресурса и что javap выполняется в каталоге проекта, а не в каталоге, содержащем файл .class.

Среди аргументов, переданных в javap:

  • bin - это выходная папка по умолчанию для проектов Eclipse. Измените это на build/classes или все, что используется проектом. Обратите внимание, что значение относится к ${project_loc}; вы можете указать абсолютные пути.
  • ${java_type_name} используется для получения выбранного имени класса.

Вы можете выбрать файл Java в представлении проводника проекта или в представлении навигатора проекта или даже в виде Java в любом из представлений, а затем запустить внешний инструмент. Примечание. Этот подход работает не очень хорошо, когда вы выбираете метод, внутренний класс и т.д., А затем запускаете инструмент, поскольку они сами по себе не являются ресурсами, что приводит к сценарию, в котором ${project_loc} будет пустым.

Источник


Dr. Garbage Tools - это набор плагинов Eclipse, выпущенных под лицензией Apache Open Source.

Установите Bytecode Visualizer с помощью Eclipse Marketplace.

Чтобы просмотреть байт-код:

  • Щелкните правой кнопкой мыши на файле .java, выберите open with и выберите other, вы получите следующее всплывающее окно:
    введите описание изображения здесь

  • Найдите "Byteecode Visualizer" и выберите вариант, который он открывает файл, как показано ниже: вы можете найти опцию Bytecode, как показано:
    введите описание изображения здесь

Ответ 4

Ну... если в представлении Navigator View или Package Explorer выбрано .class, достаточно простого F3, чтобы открыть декомпилированную версию этого в редакторе.

http://img822.i_mageshack.us/img822/8735/eclipseclass.png

Ответ 5

Как намекнул пользователь833970: плагин байтового кода: http://andrei.gmxhome.de/bytecode/index.html

В своей базе он предоставляет представление "байт-код" для открытого Java файла, который вы искали.

Однако вы также можете назначить его для загрузки любого случайного .class файла вместо стандартного просмотра .class, и он превосходит его по-разному. Например, этот зритель фактически перескакивает в нужное место в байт-коде, если вы нажмете на элемент в представлении "Контур".

Ссылки на скачивание (для использования dropin) можно найти по указанной ссылке, сайт обновлений http://andrei.gmxhome.de/eclipse/. p >

Ответ 6

Я попробовал несколько разных решений для этого. Byteecode Visualizer (доступно здесь: https://sourceforge.net/projects/drgarbagetools/), на мой взгляд, лучшее решение. Он аккуратно отображает вывод и дает понять, как он ссылается на исходный код. Я заметил несколько незначительных неверных истолкований на некоторых из байт-кодов, но вы можете понять суть этого.

К сожалению, он, похоже, не поддерживает Неона в момент написания. Однако он поддерживает Марс.

Ответ 7

Если вас действительно интересует байт-код, есть плагин eclipse, который позволяет вам открывать и редактировать байт-код файла .class с помощью текстового редактора.

https://github.com/itemis/jbc

введите описание изображения здесь