Descompilación por lotes de archivos Java con JD-GUI


Estoy buscando un programa para descompilar por lotes las clases Java. Encontré JAD, pero no era compatible con algunas características nuevas de Java, y el beneficio de este programa es que puede ejecutarse desde la línea de comandos y generar un *.archivo java automáticamente.

También encontré JD-GUI. Es compatible con la mayoría de las características de Java, pero el defecto es que no puede hacer el procesamiento por lotes. Debe abrir el archivo de clase con el programa y hacer clic en guardar.

¿ Hay una manera de hacer que JD-GUI haga el procesamiento por lotes como JAD?

Author: 4castle, 2009-09-06

4 answers

La descompilación de la línea de comandos para JD-GUI es una característica altamente solicitada pero aún no está implementada. Tal vez pueda usar la siguiente solución mientras tanto:

  1. jar (o zip) todas las clases que desea descompilar juntas.
  2. Inicie JD-GUI y abra su archivo jar (zip).
  3. Use la opción de menú "Archivo" - "Guardar fuentes JAR". Descompilará todas las clases de su archivo y guardará sus fuentes en otro archivo zip.

No he visto ninguna buenas alternativas de código abierto JD-GUI con soporte de línea de comandos, por desgracia, así que creo que lo anterior es tan bueno como se pone por ahora.

 49
Author: ChssPly76,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-06 01:23:43

Podría recomendar el uso de Jad en conjunción con JadRetro - por supuesto, no puede hacer que Jad produzca genéricos java, pero el código fuente descompilado (incluso para las clases Java 1.5+) es funcionalmente equivalente al original (y compilable en la mayoría de los casos).
Su uso es simple:

Jadretro *.clase
jad .clase

Notas:
1. JadRetro se puede usar en modo por lotes de esta manera: jadretro ...
2. Si está utilizando jad v1.5.8 e (en lugar de la última v1.5.8 g), entonces la opción" - c " debe pasarse a jadretro (de lo contrario, jad se negará a descompilar las clases Java 1.5+).

 3
Author: ivmai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-09 18:34:06

Parece que puede lanzar la GUI con un montón de libs a la vez usando la línea de comandos y luego CTRL+ALT+s/CTRL+w cada pestaña para guardar/cerrar rápidamente. No está automatizado, pero es tolerable cuando se descompila una pila de dependencias. (Tenga en cuenta que el "^" es solo un truco para hacer comandos multilínea en 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
 1
Author: Ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-10 20:12:42

Archivo > Guardar todas las fuentes guardará todos los archivos en el directorio principal.

 0
Author: Esther,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-12 08:17:10