Как запустить Java Decompiler / JD / JD-Eclipse в Eclipse Helios

Java Decompiler (JD) обычно рекомендуется как хороший, ну, Java Decompiler. JD-Eclipse - это подключаемый модуль Eclipse для JD.

У меня были проблемы на нескольких разных машинах, чтобы запустить плагин. Всякий раз, когда я пытался открыть файл.class, показывался стандартный редактор "Source not found", отображающий разборку низкоуровневого байт-кода, а не вывод исходных данных Java, который вы ожидаете от декомпилятора.

Документы по установке в http://java.decompiler.free.fr/?q=jdeclipse неплохие, но довольно расплывчатые, когда дело доходит до устранения неполадок.

Открытие этого вопроса для сбора дополнительной информации: с какими проблемами вы столкнулись до запуска JD в Eclipse Helios? Какое было решение?

15 ответов

Решение

Вот вещи, с которыми я столкнулся:

1) RTFM и установите "Распространяемый пакет Microsoft Visual C++ 2008 SP1", упомянутый в верхней части документации по установке. Я пропустил это сначала, потому что инструкции Helios находятся в конце.

2) Закройте все открытые вкладки редактора, прежде чем открывать файл класса. В противном случае легко получить устаревшую вкладку редактора с предыдущей попытки.

3) Откройте файл класса в "Редакторе файлов классов Java" (не в "Средстве просмотра файлов классов Java"). Используйте "Открыть с помощью" в контекстном меню, чтобы получить правильный редактор. Если результаты вас устраивают, сделайте его редактором по умолчанию в настройках "Сопоставление файлов", в "Окне" / "Общие настройки" / "Редакторы / сопоставления файлов" выберите "*.class", чтобы открыть его в "Редакторе файлов классов Java".

4) Этот парень рекомендует установить Equinox SDK с сайта обновлений Helios. Я сделал, но я не уверен, было ли это действительно необходимо. Кто-нибудь знает?

5) Если файлы классов, которые вы пытаетесь просмотреть, находятся в проекте Eclipse Java, они должны находиться в пути сборки проекта. В противном случае в журнале ошибок Eclipse появится исключение ("Не в пути сборки"), и декомпиляция завершится неудачно. Я добавил файлы классов как папку библиотеки / файла классов в путь сборки.

6) Перетаскивание файла класса из Проводника Windows или открытие его с помощью меню "Файл / Открыть файл..." не будет работать. В моих тестах я даю "Не удалось открыть редактор: Средство просмотра файлов классов не может обработать данный ввод ('org.eclipse.ui.ide.FileStoreEditorInput')". ошибка. В любом случае это, вероятно, неправильный редактор, см. 3).

7) После запуска плагина в основном некоторые файлы по-прежнему не декомпилируются по неизвестной причине. Это исчезло после закрытия всех вкладок, перезапуска Helios и повторной попытки.

Чтобы заставить его работать в Eclipse Juno - мне пришлось сделать несколько дополнительных шагов.

В общем -> Редакторы -> Файловая ассоциация

  1. Выберите "*.class" и отметьте "Редактор файлов классов" по ​​умолчанию
  2. Выберите "*.class без исходного кода" -> "Добавить" -> "Редактор файлов классов" -> Сделать его по умолчанию
  3. Перезапустите затмение

Плагин JD-eclipse 0.1.3 может декомпилировать только файлы.class, которые видны из пути к классам / пути сборки.

Если ваш класс находится в.jar, вы можете просто добавить этот jar в Build Path в качестве другой библиотеки. В проводнике пакетов просмотрите новую библиотеку и откройте класс в редакторе файлов классов.

Если вы хотите декомпилировать какой-либо класс в файловой системе, он должен находиться в соответствующей папке, и корневая папка должна быть включена в путь сборки. Вот пример:

  1. Класс - это foo.bar.MyClass в... / someDir / foo / bar / MyClass.class
  2. В вашем проекте Eclipse добавьте папку с произвольным именем aClassDir, которая ссылается на.../someDir.
  3. Добавьте эту связанную папку в путь сборки проекта.
  4. Используйте представление Navigator для навигации и открытия файла.class в редакторе файлов классов. (Примечание. Обычные файлы.class в файловой системе скрыты в представлении Package Explorer.)

Примечание. Если someDir является подпапкой вашего проекта, вы можете пропустить шаг 2 (ссылка на папку) и добавить его непосредственно в путь сборки. Но это не работает, если это папка вывода компилятора проекта Eclipse.

PS Я хотел бы просто дважды щелкнуть любой файл.class в любой подпапке проекта без необходимости иметь его в пути к классам...

Я использую Eclipse 3.7 Indigo и Windows 7 64-bit:

Что я сделал, так это установил распространяемый пакет Microsoft Visual C++ 2008 с пакетом обновления 1 (SP1) в соответствии с предложением сайта и напоминанием @Universalspezialist.

Затем установите плагин, как указано на сайте: http://java.decompiler.free.fr/?q=jdeclipse

Перейдите в настройки, затем найдите "Ассоциации файлов". Нажмите на *.class, затем установите "Редактор файлов класса" по умолчанию.

Перезапустить Eclipse возможно? (Я сделал это, но я не уверен, нужно ли это или нет)

Простая вещь, которую я сделал, чтобы заставить это работать:

Пошел в затмении> Окно> Настройки

(Необязательно) введите в поле поиска "файл", чтобы помочь обрезать дерево опций. Пошел в Общие> Редакторы> Файловые ассоциации.

Кликнул по типу ".class". Ниже присутствовали 2 редактора, я нажал на "Редактор файлов классов" - тот, что со значком из JD, нажал кнопку "По умолчанию" справа.

Готово. Теперь все наши классы принадлежат нам.

После тестирования на Juno, Kepler и Luna я обнаружил, что JD работает только для файлов *.class в пути сборки.

  1. Добавление фляги как библиотека существующего проекта
  2. Перейдите в Настройки-> Общие-> Редакторы-> Ассоциации файлов, установите *.class without source в Class File Editor со значком чашки

Он должен работать для всех версий затмения, даже в костюме для пружин (STS). Вот шаги

Перейдите по ссылке URl. Перейдите по ссылке для загрузки или нажмите ссылку ниже для прямой загрузки. Нажмите здесь, чтобы загрузить

Скачать JD-Eclipse, Загрузите и распакуйте сайт обновления JD-Eclipse,

Запустите Eclipse,

Нажмите "Справка> Установить новое программное обеспечение...",

Нажмите на кнопку "Добавить...", чтобы добавить новый репозиторий,

Введите "Сайт обновления JD-Eclipse" и выберите каталог локального сайта,

Выберите извлеченную папку и дайте любое имя. Я дал JDA, и нажмите ОК.

Проверьте "Подключаемый модуль Eclipse Java Decompiler",

Далее, далее, далее... и перезапустите Eclipse.

Вместо этого я использую jadeclipse, потому что он не может работать в 3.6/3.7 eclipse

Обновление сайта http://webobjects.mdimension.com/jadclipse/3.6/

Intallation http://5thcross.wordpress.com/2009/05/20/installing-jadclipse-in-eclipse/

Плагин JAD Decomplier для Eclipse версий 3.x и 4.x.

Обновление сайта: http://feeling.sourceforge.net/update

шаги:

  1. Откройте Eclipse IDE.
  2. Нажмите Справка-> Установить новое программное обеспечение
  3. Вставьте вышеуказанный URL и дайте имя как JAD.
  4. Выберите декомпилятор класса Eclipse
  5. Нажмите Далее и примите соглашения
  6. Установите это.
  7. Перезапустите Eclipse и проверьте сейчас.

Если вам нужно декомпилировать автономный jar, попробуйте JD-GUI того же автора (из JD-Eclipse). Это отдельное приложение (не требует затмения). Он может открывать как *.class, так и *.jar файлы. Достаточно интересно, что ему нужно установить.Net (как, впрочем, и JD-Eclipse), но в остальном работает как шарм.

Найдите это здесь:

http://jd.benow.ca/

С Уважением,

Шаги для добавления декомпилятора Java в Eclipse:

  1. Откройте Eclipse IDE.
  2. Нажмите Справка->Мастер Eclipse Marketplace
  3. На вкладке "Поиск" найдите JD (JD - это ключевое слово для получения декомпилятора Eclipse Class)
  4. Выберите декомпилятор класса Eclipse
  5. Нажмите на Установить.
  6. Перезапустите Eclipse и проверьте
  1. Загрузите сайт обновлений JD-Eclipse (github.com/java-decompiler/jd-eclipse)
  2. Запустите Eclipse,

  3. Нажмите "Справка> Установить новое программное обеспечение...",

  4. Нажмите на кнопку "Добавить...", чтобы добавить новый репозиторий,

  5. Введите "Сайт обновления JD-Eclipse" и выберите каталог локального сайта,

  6. Проверьте "Подключаемый модуль Eclipse Java Decompiler",

  7. Далее, далее, далее... и перезапустите Eclipse.

Я сделал шаги 1, 2, 3 и 7. и поместил папку с файлами классов в путь сборки проекта (щелчок правой кнопкой мыши, свойства, путь сборки java, библиотеки, добавление папки классов, создание новой папки, расширенный >>, ссылка на папку в файловой системе, обзор,...) затем перезапустите eclipse.

Я использовал студию Intellij или Android, обе отлично работают для декомпиляции. Внутренне Intellij использует декомпилятор FernFlower.

Просто скачайте сайт со страницы JD. Мне удалось установить с локального сайта в разделе затмений программного обеспечения затмения.

Другие вопросы по тегам