46 votes

Comment faire fonctionner le décompilateur Java / JD / JD-Eclipse dans Eclipse Helios ?

Java Decompiler (JD) est généralement recommandé comme un bon décompilateur Java. JD-Eclipse est le plugin Eclipse pour JD.

J'ai eu des problèmes sur plusieurs machines différentes pour faire fonctionner le plugin. Chaque fois que j'essayais d'ouvrir un fichier .class, l'éditeur standard "Source not found" s'affichait, montrant un désassemblage de bytecode de bas niveau, et non la sortie de source Java que l'on attendrait d'un décompilateur.

Documentation d'installation dans http://java.decompiler.free.fr/?q=jdeclipse ne sont pas mauvaises mais assez vagues lorsqu'il s'agit de dépanner.

Ouvrir cette question pour recueillir des informations supplémentaires : Quels problèmes avez-vous rencontrés avant que JD ne fonctionne dans Eclipse Helios ? Quelle était la solution ?

2 votes

J'ai fait les étapes 1, 2, 3 et 7. et j'ai mis le dossier avec les fichiers de classe dans le chemin de construction du projet (clic droit, propriétés, java build path, libraries, add class folder, create new folder, advanced>>, link to folder in the file system, browse,...) puis redémarrer eclipse.

1 votes

La nouvelle maison de JD-Eclipse est : jd.benow.ca/#jd-eclipse

37voto

Universalspezialist Points 541

Voici les problèmes que j'ai rencontrés :

1) RTFM et installez le "Microsoft Visual C++ 2008 SP1 Redistributable Package" mentionné en haut des documents d'installation. en haut de la documentation d'installation. J'ai manqué cela au début parce que les instructions Helios sont à la fin.

2) Fermez tous les onglets ouverts de l'éditeur avant d'ouvrir un fichier de classe. Sinon, il est facile de récupérer un onglet d'éditeur périmé lors d'une tentative précédente.

3) Ouvrez le fichier de classe dans le "Java Class File Editor" (et non dans le "Java Class File Viewer"). Utilisez "Ouvrir avec" dans le menu contextuel pour obtenir le bon éditeur. Si vous êtes satisfait des résultats, faites-en l'éditeur par défaut dans les paramètres d'association de fichiers, dans Fenêtre/Préférence générale/Éditeurs/Associations de fichiers, sélectionnez *.class pour ouvrir avec "Java Class File Editor".

4) Ce type recommande d'installer le SDK Equinox à partir du site de mise à jour d'Helios. Je l'ai fait, mais je ne suis pas sûr que ce soit vraiment nécessaire. Quelqu'un le sait ?

5) Si les fichiers de classe que vous essayez d'afficher se trouvent dans un projet Java Eclipse, ils doivent se trouver dans le chemin de construction du projet. Sinon, une exception ("Not in the build path") apparaîtra dans le journal des erreurs d'Eclipse, et la décompilation échouera. J'ai ajouté les fichiers de classe en tant que bibliothèque / dossier de fichiers de classe dans le chemin de construction.

6) Glisser/déposer un fichier de classe depuis l'explorateur Windows ou l'ouvrir avec Fichier/Ouvrir le fichier... ne fonctionne pas. Dans mes tests, je donne un "Could not open the editor : The Class File Viewer cannot handle the given input ('org.eclipse.ui.ide.FileStoreEditorInput')". C'est probablement le mauvais éditeur de toute façon, voir 3).

7) Après avoir fait fonctionner le plugin, certains fichiers n'étaient toujours pas décompilés pour une raison inconnue. Cela a disparu après avoir fermé tous les onglets, redémarré Helios et réessayé.

0 votes

Je serais capable d'exécuter l'étape 5 si je pouvais voir la fenêtre de dialogue pour ajouter une bibliothèque ou un dossier de classe ; mais je ne peux pas. Je ne trouve pas non plus d'instructions sur la façon d'utiliser ce décompilateur.

8 votes

La deuxième partie de l'étape 3 était la clé pour moi dans Eclipse 4.2M5. Il n'y a pas d'Ouvrir avec dans le menu contextuel, donc vous devez ajouter Class File Editor sous Associations de fichiers pour "*.class without source" et en faire la valeur par défaut.

2 votes

Je vois "Class File Editor", pas "Java Class File Editor". (Eclipse Indigo SR2) Mais en choisissant "Class File Editor", cela ouvre toujours l'ancien "Class File Viewer". Quel est le problème ? Pourquoi est-ce si difficile ?

19voto

Sandeep Singhal Points 112

Pour le faire fonctionner dans Eclipse Juno - j'ai dû faire quelques étapes supplémentaires.

Dans Général -> Éditeurs -> Association de fichiers

  1. Sélectionnez "*.class" et marquez "Class File Editor" comme valeur par défaut.
  2. Sélectionnez "*.class without source" -> Add -> "Class File Editor" -> Make it as default
  3. Redémarrer l'éclipse

9voto

leo Points 1257

Le plugin JD-eclipse 0.1.3 peut uniquement décompile les fichiers .class qui sont visibles depuis le classpath/Build Path. .

Si votre réside dans un fichier .jar vous pouvez simplement ajouter cette jar au chemin de construction comme une autre bibliothèque. Dans l'explorateur de paquets, parcourez votre nouvelle bibliothèque et ouvrez la classe dans l'éditeur de fichiers de classe.

Si vous voulez décompiler toute classe sur le système de fichiers Il doit résider dans la hiérarchie de dossiers appropriée et le dossier racine doit être inclus dans le chemin de construction. Voici un exemple :

  1. La classe est foo.bar.MyClass dans .../someDir/ foo/bar/MyClass.class
  2. Dans votre projet Eclipse, ajoutez un dossier portant le nom arbitraire aClassDir, qui renvoie à .../someDir.
  3. Ajoutez ce dossier lié au chemin de construction du projet.
  4. Utilisez la vue Navigateur pour naviguer et ouvrir le fichier .class dans l'éditeur de fichiers de classe. (Remarque : les fichiers .class ordinaires du système de fichiers sont masqués dans la vue de l'Explorateur de paquets).

Note : Si someDir est un sous-dossier de votre projet, vous pouvez sauter l'étape 2 (link folder) et l'ajouter directement au Build Path. Mais cela ne fonctionne pas, si c'est le dossier de sortie du compilateur du projet Eclipse.

P.S. J'aimerais pouvoir double-cliquer sur n'importe quel fichier .class dans n'importe quel sous-dossier du projet sans avoir besoin de l'avoir dans le classpath...

0 votes

La réponse la plus utile du groupe. Merci !

6voto

Kenston Choi Points 1138

J'utilise Eclipse 3.7 Indigo et Windows 7 64-bit :

Ce que j'ai fait, c'est installer le Microsoft Visual C++ 2008 SP1 Redistributable Package comme suggéré par le site et rappelé par @Universalspezialist.

Ensuite, installez le plugin comme indiqué sur le site : http://java.decompiler.free.fr/?q=jdeclipse

Allez dans les préférences, puis trouvez "Associations de fichiers". Cliquez sur le *.class, puis définissez le "Class File Editor" comme valeur par défaut.

Redémarrer Eclipse peut-être ? (J'ai fait cela, mais je ne suis pas sûr que ce soit nécessaire ou non)

6voto

vlad-ardelean Points 1885

Un truc simple que j'ai fait pour que ça marche :

Se rendre dans eclipse > Fenêtre > Préférences

(Facultatif)tapez dans le champ de recherche "fichier" pour aider à réduire l'arbre des options. Je suis allé dans Général > Éditeurs > Associations de fichiers.

Cliquez sur le type ".class". En dessous il y avait 2 éditeurs présents, j'ai cliqué sur le "Class File Editor" - celui avec l'icône de JD, cliqué sur le bouton "Default" à droite.

Fait. Maintenant toute votre classe est à nous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X