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
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
à 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).
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).
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).
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.
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 :)).
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!
j'utilise JD-GUI pour extraire toutes les classes java décomposées vers les fichiers java.