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?
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:
- jar (o zip) todas las clases que desea descompilar juntas.
- Inicie JD-GUI y abra su archivo jar (zip).
- 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.
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+).
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
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.
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