IDEA имеет отличную встроенную функцию - декомпилятор. Он отлично работает. Я могу скопировать исходный код, но я не могу найти вариант для извлечения всех декомпилированных классов Java в java-файлы.
В этом проекте много классов и пакетов java, поэтому я буду долго копировать это вручную.
Кто-нибудь знает, как извлечь исходные файлы Java. ThxКак декомпилировать java-файлы intellij idea
ответ
Чтобы использовать декомпилятор IntelliJ Java из командной строки для пакета банку следуйте инструкциям, приведенным здесь: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
Декомпилятор IntelliJ IDEA не был построен с таким видом использования. Он предназначен только для того, чтобы помочь программистам заглянуть в байт-код классов Java, которые они разрабатывают. Для декомпиляции множества файлов классов, у которых у вас нет исходного кода, вам понадобится другой декомпилятор java, который специализируется на этой задаче и, скорее всего, работает автономно. Если вы google, вы должны найти связку.
, но я скопировал ручной код, и он работает. Возможно, есть какой-либо способ сделать это автоматически или написать сценарий для копирования из декомпилированного архива в проект. – bkdaaqra
Некоторое время назад я использовал JAD (JAva Decompiler), чтобы добиться этого - я не думаю, что декомпилятор IntelliJ был включен с экспортом в виду. Это больше инструмент, помогающий просматривать классы, где источники недоступны.
JAD по-прежнему доступен для загрузки, но я не думаю, что кто-то поддерживает его больше: http://varaneckas.com/jad/
Были многочисленные плагины для него, а именно Jadclipse (как вы уже догадались, способ использовать JAD в Затмении - см декомпилированы классы, где код недоступен :)).
Intellij decompiler отлично работает по сравнению с другими инструментами, но иногда он не может декомпилировать lamdas, поэтому он оставил invokedynamic, но я попробовал cfr, и он делает это хорошо, но другой код не так хорош, как intellij, поэтому мне нужно скопировать весь код вручную ( – bkdaaqra
Вы можете использовать один из них (вы можете как использовать их в Интернете или загрузить их, есть некоторая информация о каждом из них): http://www.javadecompilers.com/
использует Один IntelliJ IDEA является fernflower, но она не может обрабатывать последние вещи - например, переключатели String/Enum, дженерики (не проверяли это лично, только читали об этом), ... Я просто попробовал cfr с вышеуказанного веб-сайта, и результат был таким же, как со встроенным декомпилятор (за исключением переключателя Enum, который у меня был в моем классе).
Следуйте инструкциям для IntelliJ JD plugin. Или см. Выдержку из приведенных ниже инструкций.
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 файлов (это не взрывает банку).
Как получить файл fernflower.jar? – asmaier
@naXa: Действительно? Как и сколько действительно полезных .jars появилось, когда googleing? Не так много, на самом деле ... – Make42
@ Make42 Я не понял. Ну, fernflower - проект с открытым исходным кодом. Это означает, что каждый может упаковать банку для себя. – naXa
По состоянию на август 2017 года и IntelliJ V2017.2 принятый ответ, похоже, не совсем точен: fernflower.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
(вы получите неправильное Использование команда, но она работает).
Попробуйте
https://github.com/fesh0r/fernflower
Скачать баночку с
http://files.minecraftforge.net/maven/net/minecraftforge/fernflower/
Команды:
java -jar fernflower.jar -hes=0 -hdc=0 C:\binary C:\source
Поместите файл банка в папке C: \ двоичного и источника будет извлечен и упакованы в jar внутри C: \ source.
Наслаждайтесь!
- 1. Как обновить IntelliJ IDEA?
- 2. Как переупаковать IntelliJ IDEA
- 3. IntelliJ IDEA - Как открыть Настроить IDEA
- 4. Как перенастроить VCS IntelliJ IDEA?
- 5. IntelliJ IDEA Как импортировать .aar?
- 6. IntelliJ IDEA Vim Как редактировать
- 7. Как устраивать инструменты Intellij IDEA?
- 8. Как управлять IntelliJ IDEA контексты
- 9. IntelliJ IDEA logcat navigation
- 10. GWT + IntelliJ Idea 9
- 11. Intellij idea error highlight
- 12. AOSP и IntelliJ IDEA
- 13. intellij Параметры импорта IDEA
- 14. IntelliJ IDEA JSP validation
- 15. Обновление intelliJ IDEA
- 16. Шаблоны градиента Intellij-IDEA
- 17. Intellij IDEA lock changeset
- 18. ClassNotFoundException in IntelliJ IDEA
- 19. Intellij Idea Plugin Development
- 20. Intellij формат IDEA JavaDoc
- 21. Развертывание внутри IntelliJ IDEA
- 22. Intellij IDEA custom Автозаполнение
- 23. Java. IntelliJ IDEA hotswap
- 24. IntelliJ IDEA override $ user
- 25. IntelliJ IDEA и backticks (`)
- 26. Свойства IntelliJ IDEA
- 27. Intellij IDEA sbt dependenies
- 28. IntelliJ IDEA Огурцы Конфигурация
- 29. intelliJ IDEA: java.lang.ClassNotFoundException
- 30. IntelliJ IDEA javadoc F1
Декомпилятор IntelliJ Java работает очень хорошо – axaluss
По умолчанию параметры IDEA: '-hdc = 0 -dgs = 1 -rsy = 1 -rbr = 1 -lit = 1 -nls = 1 -mpm = 60' вы можете увидеть их в следующей ссылке [github] (https://github.com/JetBrains/intellij-community/blob/master/plugins/java- decompiler/plugin/src/org/jetbrains/java/decompiler/IdeaDecompiler.kt) – kraken
Кто-нибудь знает, где найти fernflower.jar в установке IntelliJ IDEA? Я искал '/ Applications/IntelliJ IDEA CE.app/Contents' на моем mac, но не смог найти его. –