Que contient exactement un fichier jar?


En tant que stagiaire, j'utilise le code de l'entreprise dans mes projets et ils m'envoient généralement un fichier jar pour travailler avec. Je l'ajoute à la construction path dans Eclipse et généralement tout va bien et dandy.

Cependant, je suis devenu curieux de savoir ce que chaque classe contenait et quand j'essaie d'ouvrir l'une des classes dans le fichier jar, cela me dit que j'ai besoin d'un fichier source.

Qu'est-ce que cela signifie? Je viens d'un arrière-plan C/C++ donc est un jar similaire à un fichier .o déjà compilé et tout ce que je pouvez voir est le .h trucs? Ou y a-t-il du code réel dans le fichier jar que j'utilise qui est crypté donc je ne peux pas le lire?

Merci pour toutes les réponses!

Modifier:
Merci, les gars, je savais que c'était un peu comme une archive, mais j'ai été confondu à pourquoi quand j'ai essayé d'ouvrir la .class fichiers, j'ai eu un tas de caractères aléatoires. La sortie était similaire lorsque j'ai essayé d'ouvrir un fichier .o en C, donc je voulais juste m'en assurer.
Merci!

Author: Randika Vishman, 2012-08-22

13 answers

Un fichier JAR n'est en fait qu'un fichier ZIP. Il peut contenir n'importe quoi - il contient généralement du code Java compilé (*.classe), mais parfois aussi Java sourcecode (*.Java).

Cependant, Java peut être décompilé - si le développeur obscurcit son code, vous n'obtiendrez cependant aucun nom de classe/fonction/variable utile.

 62
Author: ThiefMaster, 2012-08-22 18:31:14

Cependant, je suis curieux de ce que chaque classe contenue et lorsque j'essaie d'ouvrir l'une des classes dans le fichier jar, il me dit que j'ai besoin d'un fichier source.

Un fichier jar est essentiellement un fichier zip contenant .fichiers de classe et potentiellement d'autres ressources (et métadonnées sur le jar lui-même). Il est difficile de comparer C à Java vraiment, car le code d'octet Java maintient beaucoup plus de métadonnées que la plupart des formats binaires-mais le fichier de classe est code compilé au lieu de source code.

Si vous ouvrez le fichier jar avec un utilitaire zip ou exécutez jar xf foo.jar, vous pouvez en extraire les fichiers et les consulter. Notez que vous n'avez pas besoin de un fichier jar pour exécuter du code Java - classloaders peut charger des données de classe directement à partir du système de fichiers, ou à partir d'URL, ainsi que des fichiers jar.

 46
Author: Jon Skeet, 2012-08-22 18:31:33

La meilleure façon de comprendre ce que contient le fichier jar est d'exécuter ceci:

Allez à la ligne de commande et exécuter jar tvf jarfilename.jar

 14
Author: Ajay George, 2012-08-22 18:30:53

Un jar fichier est un fichier zip avec des fichiers supplémentaires contenant des métadonnées. (Malgré la .jar extension, il est au format zip, et tous les utilitaires qui traitent .les fichiers zip sont également en mesure de traiter .les fichiers jar.)

Http://docs.oracle.com/javase/8/docs/technotes/guides/jar/index.html

Les fichiers Jar peuvent contenir n'importe quel type de fichiers, mais ils contiennent généralement des fichiers de classe et des fichiers de configuration (propriétés), des graphiques et d'autres fichiers de données application.

Les fichiers de classe contiennent du code Java compilé, qui est exécutable par la machine virtuelle Java.

Http://en.wikipedia.org/wiki/Java_class_file

 10
Author: theglauber, 2015-03-27 19:05:55

JAR signifie Archive Java. C'est un format de fichier basé sur le format de fichier ZIP populaire et est utilisé pour agréger de nombreux fichiers en un seul. Bien que JAR puisse être utilisé comme un outil d'archivage général, la motivation principale de son développement était que les applets Java et leurs composants requis (.fichiers de classe, images et sons) peuvent être téléchargés sur un navigateur en une seule transaction HTTP, plutôt que d'ouvrir une nouvelle connexion pour chaque pièce. Cela améliore considérablement la vitesse avec laquelle une applet peut être chargé sur une page web et commencer à fonctionner. Le format JAR prend également en charge la compression, ce qui réduit la taille du fichier et améliore encore le temps de téléchargement. De plus, les entrées individuelles dans un fichier JAR peuvent être signées numériquement par l'auteur de l'applet pour authentifier leur origine.

 6
Author: oxy_js, 2014-07-11 06:05:51

Le fichier Jar

Contient des classes binaires Java compilées sous la forme de *.class qui peuvent être converties en classe .java lisible en la décompilant à l'aide d'un décompilateur open source. Le jar a également un META-INF/MANIFEST.MF facultatif qui nous indique comment utiliser le fichier jar - spécifie d'autres fichiers jar pour le chargement avec le jar.

 4
Author: Piyush Mattoo, 2012-08-22 18:36:40

JD-GUI est un outil très pratique pour parcourir et décompiler les fichiers JARs

 2
Author: Anton Arhipov, 2012-08-22 18:52:37

A.le fichier jar s'apparente à un .EXE. En substance, ils sont tous deux des fichiers zip exécutables (différents algorithmes zip).

Dans un fichier jar, vous verrez des dossiers et des fichiers de classe. Chaque fichier de classe est similaire à votre .o fichier, et est une archive java compilée.

Si vous voulez voir le code dans un fichier jar, téléchargez un décompilateur java (situé ici: http://java.decompiler.free.fr/?q=jdgui) et a.extracteur de pot (7zip fonctionne bien).

 1
Author: Tyzoid, 2012-08-22 18:32:23

Vérifiez simplement si le fichier aopalliance.jar contient des fichiers .java au lieu de fichiers .class. si c'est le cas, extrayez simplement le fichier jar, importez-le dans eclipse et créez un jar via eclipse. Il a travaillé pour moi.

 1
Author: Ghanshyam, 2016-03-08 07:51:20

A.le fichier jar contient le code compilé (*.class files) et d'autres données/ressources liées à ce code. Il vous permet de regrouper plusieurs fichiers dans un seul fichier d'archive. Il contient également des métadonnées. Comme il s'agit d'un fichier zip, il est capable de compresser les données que vous y mettez.

Quelques choses que j'ai trouvées utiles.

Http://www.skylit.com/javamethods/faqs/createjar.html

Http://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html

Dans la pratique, le livre OSGi définit les fichiers JAR comme suit: "Les fichiers JAR sont des fichiers d'archive basés sur le format de fichier ZIP, permettre à de nombreux fichiers d'être agrégés en un seul fichier. Typiquement les fichiers l'archive contient un mélange de fichiers de classe Java compilés et de ressources fichiers tels que des images et des documents. En outre, l' spécification définit un emplacement standard dans une archive JAR pour les métadonnées - le dossier META-INF - et plusieurs noms de fichiers standard et formats dans ce directement, la plupart important dont est le MANIFESTE.Fichier MF."

 0
Author: Wazza, 2013-07-19 08:51:43

Selon ma compréhension, le fichier Jar est identique à Zip mais contient des fichiers exécutables.

Si vous n'avez pas de fichiers exécutables dans Jar, ce serait la même chose que le fichier Zip, je veux dire pourquoi aller dans Jar.

Depuis Jar fichier a fichiers exécutables, ils peuvent être facilement chargés sur votre code et facilement transférés à d'autres de l'utiliser.

 0
Author: Srekk, 2015-09-04 05:01:05

Jar( Archive Java) contient un groupe de .les fichiers de classe.

1.To créer un fichier Jar (Fichier Zip)

 if one .class (say, Demo.class) then use command jar -cvf NameOfJarFile.jar Demo.class (usually it’s not feasible for only one .class file)

 if more than one .class (say, Demo.class , DemoOne.class) then use command jar -cvf NameOfJarFile.jar Demo.class DemoOne.class

 if all .class is to be group (say, Demo.class , DemoOne.class etc) then use command jar -cvf NameOfJarFile.jar *.class

2.To extraire le fichier Jar (Décompresser le fichier)

    jar -xvf NameOfJarFile.jar

3.To afficher la table des matières

    jar -tvf NameOfJarFile.jar
 0
Author: bishwas pokharel, 2016-06-06 08:22:57

Un JAR (Java ARchive) est un format de fichier de package généralement utilisé pour agréger de nombreux fichiers de classe Java et les métadonnées et ressources associées (texte, images, etc.) dans un fichier pour la distribution. Les fichiers JAR sont des fichiers d'archive qui incluent un fichier manifeste spécifique à Java. Ils sont construits sur le format ZIP et ont généralement un .extension de fichier jar.

 0
Author: amigana _34, 2018-08-28 10:23:43