Как запустить 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 - мне пришлось сделать несколько дополнительных шагов.
В общем -> Редакторы -> Файловая ассоциация
- Выберите "*.class" и отметьте "Редактор файлов классов" по умолчанию
- Выберите "*.class без исходного кода" -> "Добавить" -> "Редактор файлов классов" -> Сделать его по умолчанию
- Перезапустите затмение
Плагин JD-eclipse 0.1.3 может декомпилировать только файлы.class, которые видны из пути к классам / пути сборки.
Если ваш класс находится в.jar, вы можете просто добавить этот jar в Build Path в качестве другой библиотеки. В проводнике пакетов просмотрите новую библиотеку и откройте класс в редакторе файлов классов.
Если вы хотите декомпилировать какой-либо класс в файловой системе, он должен находиться в соответствующей папке, и корневая папка должна быть включена в путь сборки. Вот пример:
- Класс - это foo.bar.MyClass в... / someDir / foo / bar / MyClass.class
- В вашем проекте Eclipse добавьте папку с произвольным именем aClassDir, которая ссылается на.../someDir.
- Добавьте эту связанную папку в путь сборки проекта.
- Используйте представление 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 в пути сборки.
- Добавление фляги как библиотека существующего проекта
- Перейдите в Настройки-> Общие-> Редакторы-> Ассоциации файлов, установите
*.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
шаги:
- Откройте Eclipse IDE.
- Нажмите Справка-> Установить новое программное обеспечение
- Вставьте вышеуказанный URL и дайте имя как JAD.
- Выберите декомпилятор класса Eclipse
- Нажмите Далее и примите соглашения
- Установите это.
- Перезапустите Eclipse и проверьте сейчас.
Если вам нужно декомпилировать автономный jar, попробуйте JD-GUI того же автора (из JD-Eclipse). Это отдельное приложение (не требует затмения). Он может открывать как *.class, так и *.jar файлы. Достаточно интересно, что ему нужно установить.Net (как, впрочем, и JD-Eclipse), но в остальном работает как шарм.
Найдите это здесь:
С Уважением,
Шаги для добавления декомпилятора Java в Eclipse:
- Откройте Eclipse IDE.
- Нажмите Справка->Мастер Eclipse Marketplace
- На вкладке "Поиск" найдите JD (JD - это ключевое слово для получения декомпилятора Eclipse Class)
- Выберите декомпилятор класса Eclipse
- Нажмите на Установить.
- Перезапустите Eclipse и проверьте
- Загрузите сайт обновлений JD-Eclipse (github.com/java-decompiler/jd-eclipse)
Запустите Eclipse,
Нажмите "Справка> Установить новое программное обеспечение...",
Нажмите на кнопку "Добавить...", чтобы добавить новый репозиторий,
Введите "Сайт обновления JD-Eclipse" и выберите каталог локального сайта,
Проверьте "Подключаемый модуль Eclipse Java Decompiler",
Далее, далее, далее... и перезапустите Eclipse.
Я сделал шаги 1, 2, 3 и 7. и поместил папку с файлами классов в путь сборки проекта (щелчок правой кнопкой мыши, свойства, путь сборки java, библиотеки, добавление папки классов, создание новой папки, расширенный >>, ссылка на папку в файловой системе, обзор,...) затем перезапустите eclipse.
Просто скачайте сайт со страницы JD. Мне удалось установить с локального сайта в разделе затмений программного обеспечения затмения.