online - Descompilación por lotes de archivos Java con JD-GUI
java decompiler portable (4)
Archivo> Guardar todas las fuentes guardará todos los archivos en el directorio de inicio.
Estoy buscando un programa para descompilar por lotes las clases de Java. Encontré JAD, pero no admitía 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 inconveniente es que no puede hacer el procesamiento por lotes. Debe abrir el archivo de clase con el programa y hacer clic en guardar.
¿Hay alguna manera de hacer que JD-GUI haga un procesamiento por lotes como JAD?
La descompilación de la línea de comandos para JD-GUI es una característica muy solicitada pero aún no está implementada. Tal vez pueda utilizar la siguiente solución alternativa mientras tanto:
- jar (o zip) todas las clases que desee descompilar juntas.
- Inicie JD-GUI y abra su archivo jar (zip).
- Utilice 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 buena alternativa 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 lo es ahora.
Parece que puede iniciar la GUI con un montón de libs a la vez utilizando la línea de comando y luego presionar CTRL + ALT + s / CTRL + w cada pestaña para guardar / cerrar rápidamente. No es automatizado, pero es tolerable cuando descompila una pila de dependencias. (Tenga en cuenta que el "^" es solo un truco para hacer comandos de varias líneas 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
Podría recomendar el uso de Jad en conjunción con JadRetro , por supuesto, no puede hacer que Jad produzca genéricos Java, pero la fuente descompilada (incluidas las clases Java 1.5+) es funcionalmente equivalente al original (y compilable de nuevo en la mayoría de los casos).
Su uso es simple:
jadretro * .class
jad .class
Notas:
1. JadRetro podría usarse en modo por lotes como este: jadretro ...
2. Si está utilizando jad v1.5.8e (en lugar de la última v1.5.8g), entonces la opción "-c" debe pasarse a jadretro (de lo contrario, jad se negará a descompilar las clases Java 1.5+).