web-dev-qa-db-fra.com

Comment extraire le code source d'un fichier * .jar sur un Mac?

Je suis très confus. J'ai téléchargé un fichier * .jar en tant que logiciel. Donc, je voudrais extraire le code source pour le regarder

J'ai utilisé la commande jar xf filename.jar

qui a renvoyé deux autres fichiers *.jar et un fichier *.class. Je ne peux toujours pas les ouvrir dans le terminal avec des éditeurs de texte standard. 

Peut-être que ce n'est pas un logiciel open source? Existe-t-il une alternative pour voir ce qui a été fait ici?

12
ShanZhengYang

Exécuter "Java -jar fernflower.jar -dgs=true JarToDecompile.jar DecompiledJar"

C'est ce que font Intelli-J et Android-Studio Decompiler.

Remarque: Fernflower extrait les fichiers .Java dans un fichier .jar. Vous pouvez soit décompresser le fichier jar en tant que fichier Zip normal (si votre version de Archive Utility sur OSX le permet - elle ne le fait pas pour moi sur OSX Sierra mais fonctionne sur El Capitan) OR vous pouvez le faire jar xf DecompiledJar et ça va l'extraire.

Exemple (commande tout en un - plusieurs commandes séparées par &&):

Java -jar fernflower.jar -dgs=true JarToDecompile.jar DecompiledJar && cd DecompiledJar && jar xf DecompiledJar.jar && cd ../

12
Brandon

Un fichier JAR may contient le code source, mais ne contient généralement que des fichiers de classe. Les fichiers de classe sont normalement destinés à l'exécution, pas à l'extraction de la source.

Vous pouvez décompiler les fichiers de classe en code source, mais le code décompilé ne sera pas aussi utile que le code source d'origine.

S'il s'agit d'une source ouverte, retournez sur le site où vous avez téléchargé les fichiers JAR et recherchez la source. Il peut s'agir de fichiers Zip à télécharger, de fichiers jar à télécharger et d'un type de référentiel, tel que Git, auquel vous pouvez vous connecter avec le bon logiciel.

2
arcy

Solution facile:

Si vous avez Eclipse, ajoutez simplement le fichier jar dans le chemin d'accès aux classes du projet actuel. Vous pouvez voir tous les packages et le code source dans le fichier jar. Vous n'avez pas besoin d'installer et d'utiliser les commandes. Vous aurez une meilleure vue de tous les fichiers

0