7
votes

Comment puis-je décompiler de nombreux pots à la fois?

Eh bien, je suppose que le sujet dit tout :)

La solution idéale trouverait tous les pots dans un certain dossier (ils pourraient être dans des sous-dossiers) et écrire toutes les sources trouvées dans un seul répertoire "SRC", bien sûr en maintenant les dossiers de l'emballage.

Cas d'utilisation du béton: Décompiler Tous les pots de plugin Eclipse


8 commentaires

Vous devriez avoir besoin de décompiler S / W. Google pour le mieux disponible.


Pouvez-vous utiliser la commande 'trouver'?


Si vous voulez simplement voir le code si nécessaire, vous pouvez également utiliser le plug-in de décompiler d'Eclipse.


@Harry Joy - Je ne savais pas que Eclipse navires avec un plug-in décompiler ... Je sais, il y a un plugin pour le Java Decompiler mais c'est "tiers".


@Andreas_d - Oui, il y a des plugins décompiles pour Eclipse. Voir ceci: sourceforge.net/projects/jadclipse et mkyong.com/java/java-decompiler-plugin-for-eclipse et devx.com/java/article/22657


@Harry, je sais, il y en a quelques-uns, mais aucun d'entre eux ne qualifie pour le terme "plugin de décompiler d'Eclipse". Ils sont tous tiers mais vous ne pouvez pas les obtenir avec des distributions Eclipse ni par les pages officielles Eclipse.


@Andreas_d - Oui, vous avez raison mais au moins, vous pouvez les avoir à Eclipse pour rechercher des fichiers de classe en les décompant.


.jar Les fichiers sont des fichiers .zip .. Vous pouvez les décompresser dans le même dossier, puis décompiler cet arbre de dossier.


5 Réponses :


2
votes

3 commentaires

De mon expérience, JD produit un meilleur code décompilé que Jad et de manière plus fiable. Il ne fait aucune tentative d'obtenir des numéros de ligne, ce qui est une douleur. Cependant, je ne sais aucun moyen de l'automatiser - si vous avez beaucoup de pots, vous devez décompiler chacun à la main.


-1 Cela ne répond pas à ma question de décompiler plusieurs pots à la fois


Oh désolé je pensais que vous avez besoin de décompiler toutes les classes dans un fichier JAR.



26
votes

Télécharger Jad Decompiler .

  • Unjar Tous vos fichiers JAR (à l'aide de la commande JAR XVF code>) dans un répertoire. Appelons ceci $ {unjar.dir} code>. P> li>

  • Créez un répertoire pour Jad pour écrire les sources décompilées. Appelons ceci $ {cible.dir} code>. P> li>

  • exécuter la commande suivante: p> li> ul>

    -o       - overwrite output files without confirmation
    -r       - restore package directory structure
    -s <ext> - output file extension (default: .jad)
    


4 commentaires

Êtes-vous sûr que Jad peut décompiler le code pour Java 1.5 et plus? Je pense qu'il y avait une certaine limitation et le projet a l'air mort ...


D'accord, je suis sur mon chemin. Premier obstacle: Comment démontrer de nombreux pots sur une invite de commande Windows? Solution trouvée: pour / f% F in ('dir / b .. *. JAR') Do Jar XF .. \% F


merci Dogbane, c'est la solution la plus simple jamais pour décompétrer tout le pot


Un paramètre qui m'a aidé était -Lradix - Afficher les entiers longs à l'aide du radiix (dans mon cas pour les champs SERIALVERSIONUID), la valeur par défaut est 16, il semble ...



1
votes

plugins d'éclipse décompile ??

Outre l'existence d'une solution technique - (1) Vous pouvez obtenir tous les fichiers source des plug-ins (officiels) Eclipse en tant que paquets et (2) ne vous attendez pas à ce que les résultats du décompiler compilent ou peuvent être utilisés pour déboguer. le code.

Donc, si vous voulez étudier la source d'éclipse et ses plugins, le décompilation est .. Dis .. pas le meilleur idée.


1 commentaires

Je sais ... J'ai mes raisons;)



1
votes

J'ai écrit un nom d'outils CODE-COLLECTION UTILISER Script Shell et CFR TO Trouver et et Décompile Tous JAR , WAR Fichiers à la fois.

Après décompilation JAR, fichiers de guerre, vous pouvez utiliser mon outil pour rechercher et copier tous les fichiers spécifiques ( .js , .html par exemple) dans un nouveau répertoire.

 Entrez la description de l'image ici

Visitez mon projet à: CODE-COLLECTION


1 commentaires

Puis-je vous demander comment revoir Comment offrir des bibliothèques open-source personnelles? ? Vous pouvez trouver utile lorsque vous publiez des projets OSAN dans les réponses.



0
votes

La commande de Windows équivalent pour cela serait la suivante:

jad -o -r -sjava -d "target.dir" "unjar.dir/**/*.class"


0 commentaires