Je cherche un programme pour décompiler par lots Java classes. J'ai trouvé JAD, mais il ne supportait pas certaines nouvelles fonctionnalités de Java, et l'avantage de ce programme est qu'il peut s'exécuter à partir de ligne de commande et générer automatiquement un fichier * .Java.
J'ai également trouvé JD-GUI. Il prend en charge la plupart des fonctionnalités de Java, mais l'inconvénient est qu'il ne peut pas effectuer de traitement par lots. Vous devez ouvrir le fichier de classe avec le programme et cliquer sur enregistrer.
Existe-t-il un moyen de faire en sorte que JD-GUI effectue un traitement par lots comme JAD?
La décompilation en ligne de commande pour JD-GUI est une fonctionnalité très demandée mais elle n'est pas encore implémentée. Vous pouvez peut-être utiliser la solution de contournement suivante en attendant:
Je n'ai pas vu de bonnes alternatives JD-GUI open source avec un support en ligne de commande, malheureusement, donc je pense que ce qui précède est aussi bon que possible pour l'instant.
Je pourrais recommander d'utiliser Jad en conjonction avec JadRetro - bien sûr, il ne peut pas faire produire Jad Java génériques mais la source décompilée (y compris pour Java 1.5+ classes) est fonctionnellement équivalent à l'original (et compilable en retour dans la plupart des cas).
Son utilisation est simple:
jadretro * .class
classe jad.
Remarques:
1. JadRetro pourrait être utilisé en mode batch comme ceci: jadretro ...
2. Si vous utilisez jad v1.5.8e (au lieu de la dernière v1.5.8g), l'option "-c" doit être passée à jadretro (sinon jad refusera de décompiler Java 1.5+ classes ).
Il semble que vous puissiez lancer l'interface graphique avec un tas de bibliothèques à la fois en utilisant la ligne de commande, puis CTRL + ALT + s/CTRL + w chaque onglet pour enregistrer/fermer rapidement. Ce n'est pas automatisé mais tolérable lors de la décompilation d'une pile de dépendances. (Notez que le "^" est juste une astuce pour faire des commandes multi-lignes dans 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
Fichier> Enregistrer toutes les sources enregistrera tous les fichiers dans le répertoire personnel.