210 votes

Extraire le code source du fichier .jar

Existe-t-il un moyen d'extraire le code source d'un fichier .jar exécutable (Java ME) ?

3 votes

Mais notez que cela peut être illégal selon que vous possédez ou non les droits d'auteur du bocal, selon le pays dans lequel vous vivez et selon le but de votre démarche.

2 votes

S'il s'agit d'un logiciel libre, obtenez la source auprès du développeur. Sinon, "Tout respect du CLUF sera apprécié".

0 votes

Vérifiez le décompilateur procyon. Téléchargez son jar pour décompiler les fichiers jar. J'ai donné les étapes ci-dessous

168voto

adarshr Points 25912

Utilisez JD GUI . Ouvrez l'application, glissez et déposez votre fichier JAR dans celle-ci.

10 votes

Existe-t-il un moyen d'obtenir le code source d'un .jar sans JD GUI ?

0 votes

@ZulqurnainJutt utiliser comme mentionné dans la réponse de @elachance jar xf filename.jar

0 votes

C'est la meilleure solution.

66voto

elachance Points 172

Vous pouvez extraire un fichier jar avec la commande :

jar xf filename.jar

Références : Documentation JAR d'Oracle

24 votes

Cela équivaut à renommer filename.jar a filename.jar.zip et ensuite juste le dézipper.

45 votes

Cela n'extrait pas le code source. Il extrait le code source compilé.

5 votes

@caffinatedmonkey il extrait le code source lorsque le jar contient des fichiers java, par exemple les jars dont le nom se termine généralement par "-sources". En effet, il n'extrait que les fichiers .class lorsque le jar ne contient aucun fichier source java.

43voto

dharam Points 2107

Je pense que cela peut être fait très facilement. Vous pouvez toujours extraire les fichiers sources (fichiers Java) d'un fichier jar dans un zip.

Étapes pour obtenir les sources d'un fichier jar sous forme de zip :

  1. Téléchargez JAD à partir de http://techieme.in/resources-needed/ et le sauvegarder à n'importe quel
    sur votre système.
  2. Glissez et déposez le jar pour lequel vous voulez les sources sur le JAD. 3 L'interface JAD s'ouvrira avec toute la structure du paquet dans un format d'arbre.
  3. Cliquez sur le menu Fichier et sélectionnez Enregistrer les sources du bocal.
  4. Il enregistrera les sources sous forme de zip avec le même nom que le jar.

J'espère que cela vous aidera.

Le lien est mort pour une raison quelconque. Nous avons donc ajouté le lien à partir duquel vous pouvez télécharger le fichier. JDGUI

1 votes

@Nitesh... Je vais poster le lien hébergé sur mon site Web... veuillez le télécharger à partir de là.

4 votes

La version dans le lien techieme fonctionne parfaitement, merci !

0 votes

Après avoir enregistré toutes les sources, lorsque j'ouvre les fichiers Java, toutes les lignes apparaissent comme des lignes commentées. Existe-t-il un paramètre pour corriger cela ?

39voto

Matthew Willis Points 26453

Votre JAR peut contenir la source et la javadoc, dans ce cas vous pouvez simplement utiliser jar xf my.jar pour les extraire.

Sinon, vous pouvez utiliser un décompilateur comme mentionné dans la réponse d'adarshr :

Utilisez JD GUI . Ouvrez l'application, faites glisser et déposez-y votre fichier JAR.

21 votes

Notez que les fichiers .jar sont en fait des fichiers .zip et peuvent être ouverts avec n'importe quel outil ZIP.

17voto

keen Points 682

Je sais que c'est une vieille question, mais j'ai pensé que cela pourrait aider quelqu'un.

1) Allez dans le dossier de votre fichier jar.

2) changez son extension en .zip.

3) Vous êtes prêt à partir et vous pouvez facilement l'extraire en double-cliquant dessus.

Note : J'ai testé cela dans MAC, cela fonctionne. J'espère que cela fonctionnera aussi sous Windows.

2 votes

@JCodex, je fais un projet de recherche sur l'outil d'analyse de sentiments "opinionfinder" et son jar contient en effet à la fois des fichiers java ET des fichiers class. Votre commentaire n'est donc pas vrai à 100%. Je sais qu'il ne contient généralement que des fichiers .class, mais pas dans ce cas précis.

4 votes

Votre solution n'extraira que les fichiers .class et non le code source.

0 votes

Il semble que JD-GUI soit un outil multiplateforme qui décompile réellement le code et affiche le code source des classes dans tous les paquets. Je l'ai essayé et j'ai pu obtenir le code source en une seconde sous MacOS. J'ai installé Java 8. Vous pouvez l'obtenir sur jd.benow.ca Je ne sais pas si cela fonctionne pour les grands projets.

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