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 lequel travailler. Je l’ajoute au path compilation dans Eclipse et généralement tout va bien et dandy.

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

Qu’est-ce que ça veut dire? 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 peux voir, c’est le truc .h ? Ou y a-t-il un code 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 une sorte d’archive, mais je ne comprenais pas pourquoi lorsque j’ai essayé d’ouvrir les fichiers .class , 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 être sûr.
Merci!

Un fichier JAR est en fait juste un fichier ZIP. Il peut contenir n’importe quoi – il contient généralement du code Java compilé (* .class), mais aussi parfois un code source Java (* .java).

Cependant, Java peut être décompilé – au cas où le développeur obscurcirait son code, vous n’obtiendrez aucun nom de classe / fonction / variable utile.

Cependant, j’ai été curieux de savoir ce que chaque classe contenait et quand j’essaye d’ouvrir une des classes du fichier JAR, cela me dit que j’ai besoin d’un fichier source.

Un fichier jar est essentiellement un fichier zip contenant des fichiers .class et potentiellement d’autres ressources (et des métadonnées sur le fichier jar lui-même). Il est difficile de comparer C à Java, car le code d’octet Java conserve beaucoup plus de métadonnées que la plupart des formats binarys, mais le fichier de classe est un code compilé plutôt qu’un code source.

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 d’ un fichier jar pour exécuter du code Java – les chargeurs de classes peuvent charger des données de classe directement depuis le système de fichiers, ou depuis des URL, ainsi que depuis des fichiers jar.

La meilleure façon de comprendre le contenu du fichier JAR est de l’exécuter:

Accédez à la ligne de commande et exécutez jar tvf jarfilename.jar

Un fichier jar est un fichier zip contenant des fichiers supplémentaires contenant des métadonnées. (Malgré l’extension .jar, elle est au format zip, et tous les utilitaires qui traitent des fichiers .zip sont également capables 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 nécessaires à l’application.

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

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

JAR signifie Java ARchive. C’est un format de fichier basé sur le populaire format de fichier ZIP et utilisé pour regrouper plusieurs fichiers en un seul. Bien que JAR puisse être utilisé comme un outil d’archivage général, sa principale motivation était de permettre le téléchargement des applets Java et de leurs composants requirejs (fichiers .class, images et sons) dans un navigateur via une seule transaction HTTP, plutôt que d’ouvrir une nouvelle connexion pour chaque pièce. Cela améliore grandement la rapidité avec laquelle une applet peut être chargée 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 d’un fichier JAR peuvent être signées numériquement par l’auteur de l’applet pour authentifier leur origine.

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

JD-GUI est un outil très pratique pour parcourir et décomstackr les JAR

Un fichier .jar s’apparente à un fichier .exe. Essentiellement, ce sont deux 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 fichier .o et constitue 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.decomstackr.free.fr/?q=jdgui ) et un extracteur .jar (7zip fonctionne correctement).

Vérifiez simplement si le fichier .java fichiers .java au lieu des fichiers .class . Si c’est le cas, extrayez simplement le fichier jar, importez-le dans eclipse et créez un fichier jar via eclipse. Cela a fonctionné pour moi.

Un fichier .jar contient du code compilé (fichiers * .class) 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.

Couple de choses que j’ai trouvé 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, permettant à de nombreux fichiers d’être regroupés dans un seul fichier. des fichiers tels que des images et des documents.En outre, la 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 et formats standard au sein de ce fichier, le plus important étant le fichier MANIFEST.MF. ”

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

Si vous ne possédez pas de fichiers exécutables dans Jar, il s’agirait d’un fichier Zip, je veux dire pourquoi aller à Jar.

Comme le fichier Jar contient des fichiers exécutables, ils peuvent être facilement chargés dans votre code et facilement transférés à d’autres utilisateurs.

Jar (Java Archive) contient un groupe de fichiers .class.

1.Pour 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.Pour extraire le fichier Jar (décompresser le fichier)

  jar -xvf NameOfJarFile.jar 

3.Pour afficher la table des matières

  jar -tvf NameOfJarFile.jar 

Un fichier JAR (Java ARchive) est un format de fichier de package généralement utilisé pour regrouper de nombreux fichiers de classe Java et les métadonnées et ressources associées (texte, images, etc.) en un seul fichier en vue de sa dissortingbution. Les fichiers JAR sont des fichiers d’archive incluant un fichier manifeste spécifique à Java. Ils sont construits sur le format ZIP et ont généralement une extension de fichier .jar.