Как декомпилировать в java-файлы intellij idea
идея имеет отличную встроенную функцию-декомпилятор. Он отлично работает.Я могу скопировать исходный код, но я не могу найти возможность извлечь все декомпилированные классы java в файлы java.
В этом проекте много классов и пакетов java, поэтому я буду долго копировать это вручную.
Кто-нибудь знает, как извлечь в исходные файлы java.
Thx
8 ответов
чтобы использовать декомпилятор IntelliJ Java из командной строки для пакета jar, следуйте инструкциям, приведенным здесь: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
по состоянию на август 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
(вы получите неправильный использование команда, но она работает).
следуйте инструкциям на IntelliJ JD плагин. Или смотрите отрывок из приведенных ниже инструкций.
java -jar fernflower.jar [<source>]+ <destination>
+
означает 1 или более раз<source>
: файл или каталог с файлами для декомпиляции. Каталоги рекурсивно сканировать. Разрешенными расширениями файлов являются class, 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 .файлы классов (он не взрывает банку).
вы можете использовать один из них (вы можете использовать их онлайн или загружать их, есть некоторая информация о каждом из них) : http://www.javadecompilers.com/
одна идея IntelliJ использует fernflower, но она не может обрабатывать последние вещи - такие как String/Enum switches, generics (не тестировал этот лично, только читал об этом)... Я просто попробовал cfr с вышеуказанного сайта, и результат был таким же, как со встроенным декомпилятором (за исключением переключателя перечисления, который у меня был в моем классе.)
декомпилятор идеи IntelliJ не был построен с учетом такого использования. Он предназначен только для того, чтобы помочь программистам заглянуть в байт-код классов java, которые они разрабатывают. Для декомпиляции множества файлов классов, исходного кода которых у вас нет, вам понадобится другой декомпилятор java, который специализируется на этой работе и, скорее всего, работает автономно. Если вы google, вы должны найти кучу.
некоторое время назад я использовал Jad (Java Decompiler) для достижения этого - я не думаю, что декомпилятор IntelliJ был включен в экспорт в виду. Это скорее инструмент, помогающий просматривать классы, где источники недоступны.
JAD по-прежнему доступен для загрузки, но я не думаю, что кто-то поддерживает его больше:http://varaneckas.com/jad/
для него было множество плагинов, а именно Jadclipse (вы догадались, как использовать JAD в Eclipse-см. декомпилированные классы, где код недоступен :)).
попробовать
https://github.com/fesh0r/fernflower
скачать jar от
http://files.minecraftforge.net/maven/net/minecraftforge/fernflower/
:java -jar fernflower.jar -hes=0 -hdc=0 C:\binary C:\source
поместите файл jar в папку C:\binary и источник будет извлечен и упакован в опарнике внутрь C:\source - ...
наслаждайтесь!