2009 : JavaDecompiler peut faire un bon travail avec un jar : depuis la 0.2.5, tous les fichiers, dans les fichiers JAR, sont affichés.
Voir aussi la question "Comment "décompiler" les fichiers de classe Java ?" .
La JD-Eclipse ne semble pas avoir changé depuis la fin de l'année 2009 (cf. Changements ).
Son intégration avec les dernières versions d'Eclipse (3.8, 4.2+) pourrait donc être problématique.
JD-Core est activement maintenu.
Tous deux sont le résultat du travail fantastique de (SO user) Emmanuel Dupuy .
2018 : Une option plus moderne, mentionnée dans les commentaires por David Kennedy Araujo :
JetBrains/intellij-community/plugins/java-decompiler/engine
Fernflower est le premier décompilateur analytique réellement fonctionnel pour Java et probablement pour un langage de programmation de haut niveau en général.
java -jar fernflower.jar [-<option>=<value>]* [<source>]+ <destination>
java -jar fernflower.jar -hes=0 -hdc=0 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\
Voir aussi Comment décompiler en fichiers java idée intellij pour une commande fonctionnant avec le récent IntelliJ IDEA.
145 votes
N'oubliez pas deux autres choses : 1) La simple mention d'un décompilateur amènera les "plus saints que vous" à porter des jugements de valeur sur vos motivations alors qu'ils n'ont aucune idée de l'usage que vous prévoyez d'en faire, alors faites attention à qui vous parlez. 2) Le fantaisiste JavaDecompiler vous donnera un excellent rendu du code, bien disposé et facile à lire - il ne manque que les commentaires. Il est étonnamment bon, il a récupéré un fichier JAR dont la source avait été perdue depuis longtemps, avec les noms des variables. Bien sûr, nous n'obscurcissons pas nos fichiers JAR internes.
1 votes
Voir aussi les remarques dans le post Choisir et tester le décompilateur java .
10 votes
Je me suis arrêté sur ce fil de discussion tant de fois lorsque j'avais besoin d'étudier comment quelqu'un avait accompli quelque chose pour un plugin Bukkit... Ce commentaire me laisse toujours avec un sourire. J'aimerais pouvoir l'upvoter à chaque fois que je m'y arrête.
0 votes
Décompilateur Java SecureTeam peut le faire.
0 votes
Décompilateur en ligne simple si vous ne voulez pas télécharger de logiciel. javadecompilateurs.com
1 votes
Ceci ne devrait pas être fermé car le terrain de jeu des décompilateurs change dynamiquement. Actuellement, le meilleur est probablement FernFlower . Si vous cherchez une solution facile, téléchargez Windup et lancez sa version en ligne de commande sur votre .jar. Il décompilera en utilisant FernFlower, avec un support jusqu'à Java 8 (jad ne supporte que jusqu'à Java 1.3, JavaDecompiler jusqu'à Java 1.5 IIRC), avec une solution de repli vers Procyon si FernFlower échoue.