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

Как использовать javap с eclipse?

Как говорится в заголовке, я пытаюсь использовать javap с eclipse, но у меня возникают трудности с его настройкой. Я пытаюсь настроить его с помощью external tools в меню run, но не могу найти правильную строку Arguments:, чтобы заставить ее работать. В принципе мне нужно что-то, что будет динамически выполнять текущий файл, который я открыл.

4b9b3361

Ответ 1

Для этого я использую следующую внешнюю конфигурацию инструмента:

enter image description here

${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} будет пустым.

Ответ 2

Ваша проблема в том, что javap запрашивает путь к файлу класса, но при выборе исходного файла вы можете получить доступ к переменной eclipse ${selected_resource_loc} содержит путь к источнику java. Насколько я понимаю, нет переменной, содержащей путь к файлу класса.

Я думаю, что самый простой способ для вас - создать свой собственный script, который принимает путь к java файлу, заменяет java на class и исходную папку на папку bin. Если вы используете linux, это можно легко сделать с помощью команды sed. Если вы находитесь в окнах, его можно реализовать с помощью команды SET с ~. См. Справку для получения более подробной информации.

Удачи.

Ответ 3

Попробуйте изменить Working Directory в соответствии с вашей выходной папкой проекта Java. В моем случае это выглядит как показано ниже.

Рабочий каталог: ${workspace_loc:/Sample/bin}

Затем я выбрал файл .class и выполнил javap без каких-либо проблем.

Ответ 4

Чтобы разобрать текущий выбранный .class файл в Eclipse, я использую следующие arguments в настройках внешних инструментов.

Таким образом, классы в подпакетах папки bin также могут быть разобраны. Выход отображается в представлении "Консоль".

Документация Oracle параметры javap.