web-dev-qa-db-fra.com

Comment extraire des classes d'un fichier .jar?

J'ai un fichier .jar. J'ai essayé d'exécuter la commande jar xf my.jar il n'a rien donné. J'ai essayé d'utiliser l'interface graphique de JD, mais le message suivant m'a été envoyé: Fichier d'entrée non valide '/home/hey/Desktop/my.jar'.

Est-ce que cela signifie que je ne peux pas extraire de classes de ce fichier .jar?

10
good_evening

Si vous souhaitez extraire un fichier du fichier Jar, utilisez la commande suivante:

jar xf jar-filename archived-files

L'optionxindique que nous souhaitons extraire les fichiers, l'optionfindique le d'un fichier jar , lejar-filenameest le nom du fichier jar à extraire etarchived-filessont les fichiers à extraire.

Nous pouvons également extraire tous les fichiers simplement en ne spécifiant pas les fichiers à extraire:

jar xf project.jar

Remarque: Si ce n'est pas accessible, faites comme @Legend dit, Ouvrez avec WinRaR vérifiez s'il est correct.jarou.Zipfichier. Si ce n'est pas le cas avec winrar, il peut y avoir un problème dans.jar/.Zip.

13
Chandra Sekhar

Vous pouvez ouvrir le fichier jar avec winrar, cela affichera tous les fichiers de classe qu'il contient, à partir de là, vous pourrez tous les faire glisser dans JD-GUI et les décompiler tous.

9
user1181445

Comment avez-vous créé votre fichier .jar?

Je viens d'utiliser Dex2Jar sur MAC OSX comme si -

Sudo sh ~/Downloads/dex2jar-2.0/d2j-dex2jar.sh ~/mobile/pjr.mob.Android/obj/Debug/Android/bin/classes.dex --force

et le fichier résultant avait un problème d'autorisations. Ainsi, lorsque je l'ai ouvert avec l'interface graphique de JD, il a donné le "Chargeur de fichier d'entrée non valide:" erreur que vous avez mentionnée ci-dessus.

Si vous faites un -

Sudo chmod + xr ~/Téléchargements/dex2jar-2.0/classes-dex2jar.jar

Vous pourrez alors l'ouvrir dans l'interface graphique de JD.

5
WickedW

pour les utilisateurs linux

unzip your.jar
4
useless

La réponse de WickedW est correcte!

Sudo chmod +xr *.jar

alors vous pouvez ouvrir le pot avec jd-gui

0
Zibri