У IDEA есть великолепная встроенная функция - декомпилятор. Он отлично работает. Я могу скопировать исходный код, но я не могу найти вариант для извлечения всех декомпилированных классов java в java файлы.
В этом проекте много классов и пакетов java, поэтому мне придется долго копировать это вручную.
Кто-нибудь знает, как извлечь в исходные файлы Java. спасибо
Как декомпилировать в java файлы intellij idea
Ответ 1
Чтобы использовать декомпилятор IntelliJ Java из командной строки для пакета jar, следуйте инструкциям, приведенным здесь: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
Ответ 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, который у меня был в моем классе).