Jar

Jar

JAR (format de fichier)

Java Archive

Nuvola mimetypes java jar.png

Extension de fichier

.jar

Type MIME

application/java-archive

Développé par

Sun Microsystems

Type de format

Archive (Compression de données)

Conteneur de fichiers

Classes Java

Extension du

ZIP

En informatique, un fichier JAR (Java ARchive) est un fichier ZIP utilisé pour distribuer un ensemble de classes Java. Ce format est utilisé pour stocker les définitions des classes, ainsi que des métadonnées, constituant l'ensemble d'un programme.

Sommaire

Description

Les fichiers JAR sont créés et extraits à l'aide de la commande jar incluse dans le JDK. On peut cependant renommer les fichiers .jar avec l'extension.zip et les manipuler avec les outils ZIP. La classe Java JarFile du package java.util.jar hérite de ZipFile.

Un fichier JAR peut contenir un fichier manifest, situé dans le chemin META-INF/MANIFEST.MF. Les données du fichier manifest spécifient comment le fichier JAR sera utilisé. Les fichiers JAR sont destinés à être exécutés comme des programmes indépendants, dont une des classes est la classe principale. Le fichier manifest peut comporter la déclaration suivante :

Main-Class: monProgramme.MaClassePrincipale

Pour exécuter un tel fichier JAR, il faut entrer la ligne de commande suivante :

java -jar <nom_du_fichier_jar>.jar

Ces fichiers peuvent également inclure une entrée relative à un Classpath, qui fait référence à d'autres fichiers JAR à charger en plus. Cette entrée est constituée d'une liste de chemins d'accès relatifs ou absolus vers d'autres fichiers JAR. Cependant cette technique n'est pas forcément intéressante, car le chemin d'accès vers tous les fichiers JAR doit être connu à l'avance par le programmeur lorsqu'il crée le manifest du fichier JAR.

Un fichier JAR peut être signé numériquement. Si c'est le cas, l'information de la signature est ajoutée au fichier manifest. Le fichier JAR lui-même n'est pas signé, ce sont chacun des fichiers de l'archive qui sont listés avec leur somme de contrôle. Ce sont ces sommes de contrôles qui sont signés. Plusieurs entités peuvent signer le fichier JAR, changeant de ce fait le fichier JAR lui-même avec chaque signature, cependant les fichiers signés restent valides. Lorsque la machine virtuelle Java charge les fichiers Jar signés, elle peut vérifier leur signature et refuser de charger les classes qui ne correspondent pas à la signature. Elle peut également prendre en charge les paquets 'scellés', dans lesquels le chargeur de classe permettra uniquement le chargement de classes du même paquetage si elles ont été signées par la même entité. Cela prévient l'insertion de code malicieux dans un paquetage existant, et évite ainsi l'accès aux classes et aux données du même paquetage.

Les fichiers Jar peuvent être obfuscés afin d'éviter que les utilisateurs puissent avoir accès trop simplement au code contenu dans le fichier. Cela permet également de réduire la taille du code, ce qui est utile dans les applications de téléphonie mobile.

Formats connexes

  • Les fichiers OpenDocument sont des archives JAR contenant des fichiers XML et d'autres objets ;
  • Les fichiers WAR (Web Application aRchive) sont des archives JAR contenant des fichiers XML, des classes Java, des JSP et d'autres objets pour les applications Web ;
  • Les fichiers EAR (Enterprise ARchive) sont des archives JAR contenant des fichiers XML, des classes Java et d'autres objets pour les applications d'entreprise ;
  • Les fichiers (Resource Adapter aRchive) sont des archives JAR contenant des fichiers XML, des classes Java et d'autres objets pour l'architecture de connecteurs (JCA) de la plateforme J2EE;
  • Les fichiers (Axis ARchive) sont des archives JAR spécifiques pour le déploiement de service web sous Axis 2, voir Apache Axis.

Gnu jar ou fastjar

Le projet GNU a mis en place la commande jar à travers un programme écrit en C. Cette variante est annoncée comme étant beaucoup plus rapide que la commande jar originale créé par Sun Microsystems (écrite en langage Java). Le programme GNU jar est soumis à la Licence publique générale GNU (GPL).

Apache Ant

L'outil de compilation Apache Ant possède son propre paquetage pour lire et écrire les archives ZIP et JAR. Le paquetage org.apache.tools.zip est disponible sous la licence Apache Software Foundation et est conçu pour être utilisable sans Ant. Ce programme est rapide et largement répandu. Il est utilisé pour créer la plupart des fichiers qui ne sont pas produits par l'utilitaire de Sun.

Problèmes avec le format JAR

L'équipe derrière le logiciel Ant, en étudiant les appels à leur ligne de support, a constaté deux problèmes récurrents :

  • Le premier intervient à la création du manifest, spécialement lorsque les lignes trop longues sont coupées sur plusieurs lignes. C'est une partie complexe et quelque peu ambiguë de la spécification. L'utilitaire Ant coupe les lignes à 68 caractères et poursuit sur la ligne suivante avec une espace en premier pour marquer la suite de la ligne précédente. Cette technique est perçue comme une erreur par les gens qui n'ont pas lu les spécifications en détail et pensent que le classpath doit être coupé à la fin du nom d'un fichier, au lieu de le couper à l'intérieur du nom d'un fichier. Malheureusement, la machine virtuelle ne détectera pas une coupure de ligne si la coupure intervient avant le 68ème caractère.
  • Le second problème est la conversion opérée par WinZip, qui transforme les noms de fichiers et de répertoires initialement en majuscules, en minuscules.

Notes et références

  • (en) Cet article est partiellement ou en totalité issu d’une traduction de l’article de Wikipédia en anglais intitulé « JAR (file format) ».

Liens externes

  • Portail de l’informatique Portail de l’informatique
  • Portail des logiciels libres Portail des logiciels libres
Ce document provient de « JAR (format de fichier) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Jar de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • jar — jar …   Dictionnaire des rimes

  • .jar — (format de fichier) Java Archive Extension de fichier .jar Type MIME application/java archive Développé par Sun Microsystems …   Wikipédia en Français

  • jar — [ ʒar ] n. m. • 1615; « bavardage » 1526; rad. de jargon ♦ Vx Argot du milieu, des voleurs. Jaspiner le jar. ⊗ HOM. Jard, jarre, jars. jar jard ou jar [ ʒar ] n. m. • XVIIe; gallo roman °carra « pierre …   Encyclopédie Universelle

  • JAR — steht für: Arcadia (Kalifornien), IATA Code des Flughafens Java Archive, ein Dateiformat für Java Programme Jemenitische Arabische Republik (1962–1990) Joint Aviation Requirements, ein Regelwerk zur Organisation des Luftverkehrs von europäischen… …   Deutsch Wikipedia

  • Jar — (j[aum]r), n. [F. jarre, Sp. jarra, from Ar. jarrah ewer; cf. Pers. jarrah.] 1. A deep, broad mouthed vessel of earthenware or glass, for holding fruit, preserves, etc., or for ornamental purposes; as, a jar of honey; a rose jar. Dryden. [1913… …   The Collaborative International Dictionary of English

  • Jar — steht für: Arcadia (Kalifornien), IATA Code des Flughafens Java Archive, ein Dateiformat für Java Programme Jemenitische Arabische Republik (1962–1990) Joint Aviation Requirements, ein Regelwerk zur Organisation des Luftverkehrs von europäischen… …   Deutsch Wikipedia

  • Jar — Jar, n. 1. A rattling, tremulous vibration or shock; a shake; a harsh sound; a discord; as, the jar of a train; the jar of harsh sounds. [1913 Webster] 2. Clash of interest or opinions; collision; discord; debate; slight disagreement. [1913… …   The Collaborative International Dictionary of English

  • Jar — Jar, v. i. [imp. & p. p. {Jarred}; p. pr. & vb. n. {Jarring}.] [Cf. OE. charken to creak, AS. cearcian to gnash, F. jars a gander, L. garrire to chatter, prate, OHG. kerran to chatter, croak, G. quarren to grumble, and E. jargon, ajar.] [1913… …   The Collaborative International Dictionary of English

  • jar — jar1 [jär] vi. jarred, jarring [ult. echoic] 1. to make a harsh sound or a discord; grate 2. to have a harsh, irritating effect (on one) 3. to shake or vibrate from a sudden impact 4. to clash, disagree, or quarrel sharply vt …   English World dictionary

  • Jar — Jar, v. t. 1. To cause a short, tremulous motion of, to cause to tremble, as by a sudden shock or blow; to shake; to shock; as, to jar the earth; to jar one s faith. [1913 Webster] 2. To tick; to beat; to mark or tell off. [Obs.] [1913 Webster]… …   The Collaborative International Dictionary of English

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”