Comment décompiler en fichiers java idée intellij

IDEA a une grande fonctionnalité intégrée-decompiler. Il fonctionne très bien.Je peux copier le code source, mais je ne peux pas trouver l'option pour extraire toutes les classes java décompilées vers les fichiers java.

Ce projet a beaucoup de classes java et les paquets, donc je vais être long à copier manuellement.

Personne ne sait comment extraire les fichiers source java. Thx

26
demandé sur bkdaaqra 2015-02-08 03:04:48

8 réponses

pour utiliser IntelliJ Java decompiler à partir de la ligne de commande pour un paquet jar suivez les instructions fournies ici: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine

21
répondu nicordesigns 2017-11-08 17:30:01

à partir d'août 2017 et IntelliJ V2017.2, la réponse acceptée ne semble plus être tout à fait exacte: il n'y a pas fernflower.jar à utiliser.

le fichier jar s'appelle

java -cp "/Applications/IntelliJ IDEA.app/Contents/plugins/java-decompiler/lib/java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler

(vous aurez du mal Utilisation la commande, mais il fonctionne).

20
répondu yan 2017-08-05 16:09:35

suivre les instructions pour IntelliJ JD plugin. Ou voir un extrait des instructions ci-dessous.

java -jar fernflower.jar [<source>]+ <destination>

+ signifie 1 fois ou plus

<source>: fichier ou répertoire avec fichiers à décompiler. Les répertoires sont scannés de façon récursive. Les extensions de fichiers autorisées sont class, zip et jar.

<destination>: répertoire de destination

Exemple:

java -jar fernflower.jar -hdc=0 -dgs=1 -rsy=1 -lit=1 c:\Temp\binary\ -e=c:\Java\rt.jar c:\Temp\source\

sachez que si vous passez un ".jar" fichier pour la source, il va créer un autre ".pot de fichier dans la destination, cependant, dans la nouvelle ".pot de fichier, les fichiers seront .java au lieu de .les fichiers de classe (il n'a pas d'exploser le pot).

14
répondu naXa 2018-01-09 08:29:45

Vous pouvez utiliser l'un de ces (vous pouvez utiliser en ligne ou les télécharger, il y a quelques infos à propos de chacun d'eux) : http://www.javadecompilers.com/

la seule idée utilisée par IntelliJ est fernflower, mais elle ne peut pas gérer les choses récentes - comme les commutateurs String/Enum, génériques (ne l'a pas testé personnellement, seulement lu), ... Je viens d'essayer cfr à partir du site ci-dessus et le résultat était le même qu'avec le decompiler intégré (à l'exception du commutateur Enum que j'avais dans ma classe).

3
répondu Bluexin 2015-03-25 12:49:00

le décomposeur de L'idée IntelliJ n'a pas été construit avec ce genre d'usage à l'esprit. Il est seulement destiné à aider les programmeurs à regarder le code des classes java qu'ils sont en train de développer. Pour décompiler beaucoup de fichiers de classe dont vous n'avez pas de code source, vous aurez besoin d'un autre décompiler java, qui est spécialisé pour ce travail, et qui fonctionne très probablement seul. Si vous google vous devriez trouver un tas.

2
répondu Mike Nakis 2015-02-08 00:10:18

il y a quelque temps j'ai utilisé JAD (JAva Decompiler) pour réaliser ceci - Je ne pense pas que le decompiler D'IntelliJ a été incorporé avec l'exportation à l'esprit. Il s'agit plutôt d'un outil pour aider à regarder à travers les classes où les sources ne sont pas disponibles.

JAD est toujours disponible pour le téléchargement, mais je ne pense pas que quelqu'un le maintienne plus: http://varaneckas.com/jad/

il y avait de nombreux plugins pour cela, à savoir Jadclipse (vous l'avez deviné, une façon d'utiliser JAD dans Eclipse-voir décompilé les classes où le code n'est pas disponible :)).

2
répondu theadam 2015-02-08 00:31:21

https://github.com/fesh0r/fernflower

télécharger jar de

http://files.minecraftforge.net/maven/net/minecraftforge/fernflower/

Commande :

java -jar fernflower.jar -hes=0 -hdc=0 C:\binary  C:\source

Placez votre fichier jar dans le dossier C:\binary et la source sera extraite et emballée dans un pot à l'intérieur C:\source.

Profitez-en!

1
répondu Prasobh.K 2018-02-06 12:25:39

j'utilise JD-GUI pour extraire toutes les classes java décomposées vers les fichiers java.

0
répondu tecdoc ukr net 2018-07-18 17:15:28