web-dev-qa-db-fra.com

IntelliJ affiche le fichier .class décompilé au lieu du code source

J'ai des problèmes avec IntelliJ - il me montre une version "décompilée" de la classe au lieu de son code source si je ctrl + clique sur la classe.

Voici ce que je vois:

Decompiled class message

J'essaie d'ouvrir des fichiers sources JDK réguliers.

Le problème le plus pertinent que j'ai trouvé est expliqué ici: sources Java remplacées par des fichiers décompilés dans Intellij

La réponse la plus détaillée que j'ai trouvée jusqu'à présent est également là.

Pourtant, cela ne fonctionne pas pour moi:

  1. Le plugin Bytecode Viewer est désactivé.

  2. Le plugin Java Bytecode Decompiler est désactivé.

  3. La plate-forme, le projet et le module ont tous la même configuration de version JDK.

  4. J'ai deux JDK disponibles dans IntelliJ: jdk1.8.0_161 et jbsdk8u112b287.2_windows_x86 (fournis avec IntelliJ, mais sans src.Zip). Essayé avec les deux (a dû spécifier src.Zip de jdk1.8.0_161 pour jbsdk8u112b287.2_windows_x86) - pas de chance

  5. src.Zip n'est pas corrompu - je peux l'ouvrir via WinRAR

  6. Lorsqu'il a été ajouté jdk1.8.0_161 à IntelliJ, il a automatiquement trouvé src.Zip. Lors de l'ajout manuel de src.Zip à jbsdk8u112b287.2_windows_x86 onglet Sourcepath - il a commencé "Recherche de racines", mais m'a averti qu'il "ne pouvait pas déterminer quel type de fichiers les éléments choisis contenaient" et m'a proposé de "les attacher en tant que" Sources "" alors j'ai accepté.

  7. Fichier essayé> Invalider les caches/redémarrer ... - même résultat.

  8. Même problème dans les versions 2017.3 et fraîches 2018.1 d'IntelliJ.

  9. Fournir un chemin pour la documentation fait qu'IntelliJ recherche la documentation dans le chemin spécifié. Cela fonctionne donc comme il se doit pour les deux JDK. Mais pas pour les sources.

  10. Tout le reste fonctionne/se compile correctement.

Mes paramètres:

Settings

20
takeoff

1. Récupérez les fichiers source

Assurez-vous d'avoir téléchargé et installé les fichiers source du JDK.

Je suis sur Arch Linux et les ai installés avec pacman -S openjdk8-src qui a mis un src.Zip en /usr/lib/jvm/Java-8-openjdk/. Nous utiliserons ce fichier Zip à l'étape suivante.

Pour répertorier les packages source de différentes versions de JDK, faites pacman -Ss "openjdk.*-src".

Voir cette question sur la façon d'obtenir les fichiers source pour votre plate-forme spécifique.

2. Pointez IntelliJ vers les fichiers source

Dans les paramètres de votre module (ouvrez-les avec F4) sous "Platform Settings" → "SDKs" → "Sourcepath", ajoutez le fichier Zip contenant la source JDK à votre projet JDK (assurez-vous de choisir le bon JDK si IntelliJ répertorie plus d'un JDK) en utilisant le bouton avec le signe plus :

Sourcepath screenshot

3. Sautez dans la source

Sélectionnez une classe JDK, comme Comparator, en utilisant la recherche d'IntelliJ partout ou Ctrl+b avec le curseur sur le nom de la classe.

Comparator source

7
Matthias Braun

Si vous êtes dans un projet maven, assurez-vous que dans la structure du projet, tous les dossiers conformes se trouvent dans la section exclue. enter image description here

0

Je rencontre le même problème et finalement il a disparu après avoir copié JDK dans un autre dossier et changé la configuration dans IntelliJ. Je pense que peut-être parce qu'il y a un espace dans le chemin avant, car il est installé dans le dossier "Program Files".

0
Xilang