Пакетная декомпиляция Java-файлов с помощью JD-GUI

Я ищу программу для пакетной декомпиляции Java-классов. Я нашел JAD, но он не поддерживал некоторые новые функции Java, и преимущество этой программы заключается в том, что она может выполняться из командной строки и генерировать *.файл java автоматически.

Я также нашел JD-GUI. Он поддерживает большинство функций Java, но недостатком является то, что он не может выполнять пакетную обработку. Вам нужно открыть файл class с помощью программы и нажмите кнопку Сохранить.

есть ли способ заставить JD-GUI делать пакетная обработка как JAD?

4 ответов


декомпиляция командной строки для JD-GUI-это настоятельно просил функция, но она еще не реализована. Возможно, вы можете использовать следующий обходной путь в то же время:

  1. jar (или zip) все классы, которые вы хотите декомпилировать вместе.
  2. запустите JD-GUI и откройте архив jar (zip).
  3. используйте опцию меню" Файл " - "Сохранить источники JAR". Он декомпилирует все классы из вашего архива и сохранит их источники в другой zip файл.

Я не видел хороших альтернатив JD-GUI с открытым исходным кодом с поддержкой командной строки, К сожалению, поэтому я думаю, что это так же хорошо, как и сейчас.


Я мог бы рекомендовать использовать Jad в сочетании с JadRetro - конечно, он не может заставить Jad производить Java-дженерики, но декомпилированный источник (в том числе для классов Java 1.5+) функционально эквивалентен оригиналу (и обратно компилируется в большинстве случаев).
Его использование просто:

jadretro *.класс!--3--> Джад .класс!--4-->

Примечания:
1. JadRetro можно использовать в пакетном режиме, например: jadretro ...
2. Если вы используете jad v1.5.8 e (вместо последней версии v1.5.8 g) затем опция "- c " должна быть передана jadretro (в противном случае jad откажется декомпилировать классы Java 1.5+).


похоже, вы можете запустить GUI с целой кучей библиотек сразу, используя командную строку, а затем CTRL+ALT+s/CTRL+w каждую вкладку, чтобы быстро сохранить/закрыть. Это не автоматизировано, но терпимо при декомпиляции кучи зависимостей. (Обратите внимание, что " ^ " -это просто трюк для выполнения многострочных команд в Windows.)

"c:\jd-gui-0.3.6.windows\jd-gui.exe" ^
 c:\my-libs\lib-a.jar ^
 c:\my-libs\lib-b.jar ^
 c:\my-libs\lib-c.jar ^
 c:\my-libs\lib-d.jar ^
 c:\my-libs\lib-e.jar

File > Save all sources сохранит все файлы в домашнем каталоге.