Un fichier JAR Java est-il similaire à un assemblage .Net?

Je suis familier avec .Net et ce que sont les assemblages – mais malheureusement, ma connaissance de Java n’est pas aussi solide.

Je sais que Java et .Net sont des “mondes” différents (ressemblant peut-être à comparer des pommes avec des poires), mais les JAR et les assemblages .Net sont-ils des concepts équivalents?

Edit: Mise à jour de la base sur les réponses initiales

La façon dont je l’interprète est que oui, ils ont des similitudes:

  • Les deux peuvent contenir des ressources et des métadonnées.

Mais il y a quelques différences fondamentales:

  • un assemblage .Net est compilé, un JAR ne l’est pas.
  • Les fichiers JAR ne sont pas nécessaires pour créer une application Java; Les assemblages .Net sont requirejs pour une application .Net.

[Ce n’est pas le temps d’une guerre de religion – j’aimerais savoir si / dans quelle mesure je comprend les assemblages .Net que je peux appliquer pour maîsortingser Java (et peut-être même que cela aidera même les Java ).]

Je dirais non, ils ne sont pas le même concept, notant qu’un JAR peut être utilisé comme un assemblage. Si vous voulez vraiment vous familiariser avec un fichier JAR, considérez-le simplement comme un fichier ZIP. C’est tout ce que c’est vraiment.

Le plus souvent, cette archive contient des fichiers de classe compilés. Et le plus souvent, ces fichiers de classe sont disposés de manière hiérarchique en fonction du package de la classe.

Mais les fichiers JAR contiennent souvent d’autres éléments, tels que des ensembles de messages, des images et même les fichiers source. Je vous encourage à en ouvrir un avec le client unzip de votre choix et à jeter un coup d’œil à l’intérieur.

Le format JAR est toutefois le moyen le plus courant de conditionner un fichier dissortingbuable pour une bibliothèque ou une application Java. Ils sont donc très similaires.

D’un sharepoint vue linguistique, les fichiers JAR ne sont en aucun cas nécessaires à la création d’une application ou d’une bibliothèque Java, et je ne dirais pas qu’ils sont insortingnsèques à Java. Cependant, la bibliothèque standard et le JDK prennent en charge le traitement des fichiers JAR.

Il existe de nombreuses différences techniques, mais elles importent peu la plupart du temps. En gros, OUI, elles correspondent au même concept.

À un niveau, ils sont conceptuellement similaires (bloc de code d’octet dans un package). Cependant, leur mise en œuvre est très différente.

Un fichier JAR est en fait un fichier ZIP contenant des métadonnées et tous les fichiers .class Java (oui, vous pouvez l’ouvrir en tant que fichier ZIP et voir à l’intérieur), ainsi que tout ce qui y était contenu (ressources, etc.).

Un assemblage .NET est en réalité un fichier Win32 PE valide et peut être traité comme tel dans une certaine mesure. Un fichier .NET .exe commence en réalité à s’exécuter en tant que code natif qui charge le framework, qui charge ensuite le bytecode. “L’exécution” d’un fichier JAR nécessite le lancement du moteur d’exécution Java via un fichier .bat, ou une association de fichier, qui charge ensuite le fichier JAR séparément.