Подтвердить что ты не робот

Как декомпилировать в java файлы intellij idea

У IDEA есть великолепная встроенная функция - декомпилятор. Он отлично работает. Я могу скопировать исходный код, но я не могу найти вариант для извлечения всех декомпилированных классов java в java файлы.
В этом проекте много классов и пакетов java, поэтому мне придется долго копировать это вручную.
Кто-нибудь знает, как извлечь в исходные файлы Java. спасибо

4b9b3361

Ответ 2

Следуйте инструкциям для Плагин IntelliJ JD. Или см. Выдержку из приведенных ниже инструкций.

java -jar fernflower.jar [<source>]+ <destination>

+ означает 1 или более раз
<source>: файл или каталог с декомпилированными файлами. Каталоги рекурсивно сканируются. Разрешенные расширения файлов - это класс, zip и jar.
<destination>: каталог назначения

Пример:

java -jar fernflower.jar -hdc=0 -dgs=1 -rsy=1 -lit=1 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\

Имейте в виду, что если вы передадите ему файл ".jar" для источника, он создаст еще один файл ".jar" в месте назначения, однако в новом файле ".jar" файлы будут .java вместо файлов .class(он не взрывает банку).

Ответ 3

По состоянию на август 2017 года и IntelliJ V2017.2 принятый ответ, похоже, не совсем точен: использовать fernflower.jar нет.

Файл jar называется java-decompiler.jar и не содержит основного манифеста... Вместо этого вы можете использовать следующую команду (с установки Mac):

java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler

(вы получите неправильную команду Usage, но она работает).

Ответ 4

Декомпилятор IntelliJ IDEA не был построен с учетом такого рода использования. Он предназначен только для того, чтобы помочь программистам заглянуть в байт-код классов Java, которые они разрабатывают. Для декомпиляции множества файлов классов, у которых у вас нет исходного кода, вам понадобится другой декомпилятор java, который специализируется на этой задаче и, скорее всего, работает автономно. Если вы google, вы должны найти связку.

Ответ 5

Некоторое время назад я использовал JAD (JAva Decompiler), чтобы добиться этого - я не думаю, что декомпилятор IntelliJ был включен с экспортом. Это больше инструмент, помогающий просматривать классы, где источники недоступны.

JAD по-прежнему доступен для загрузки, но я не думаю, что кто-то его поддерживает: http://varaneckas.com/jad/

Для него было множество плагинов, а именно Jadclipse (вы догадались, способ использования JAD в Eclipse - см. декомпилированные классы, где код недоступен:)).

Ответ 6

Вы можете использовать один из них (вы можете использовать их онлайн или загружать, есть информация о каждом из них): http://www.javadecompilers.com/

Один IntelliJ IDEA использует fernflower, но он не может обрабатывать последние вещи - такие как переключатели String/Enum, generics (не проверял это лично, только читал об этом),... Я просто попробовал cfr с вышеуказанного веб-сайта, и результат был таким же, как со встроенным декомпилятором (за исключением переключателя Enum, который у меня был в моем классе).