Как использовать javap с затмением? - PullRequest
17 голосов
/ 14 августа 2011

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

Ответы [ 5 ]

25 голосов
/ 14 августа 2011

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

enter image description here

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

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

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

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

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

3 голосов
/ 14 августа 2011

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

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

Удачи.

0 голосов
/ 07 января 2019

Using javap command in eclipse

В дополнение к ценному пользовательскому скрипту, предложенному @AlexR; Другой способ: откройте окна терминала в Ecplise и выполните команду javap с параметром -p и другим параметром.

0 голосов
/ 08 января 2016

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

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

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

0 голосов
/ 04 февраля 2013

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

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

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

...