Как говорится в заголовке, я пытаюсь использовать 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.