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

${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.