73 votes

La différence entre les deux .jar et .fichier dll

Je suis en train d'apprendre le Java ces jours-ci et j'ai passé beaucoup de temps avec .NET ainsi, lorsque je veux exporter ou d'importer des bibliothèques, ils sont généralement .dll format qui est appelé assemblée .Net de l'environnement et ils sont compilés à l'IL et ils peuvent avoir des ressources comme des images, xml, audio et fils, de toute façons.

Je me demande même processus en Java ainsi. J'ai lu les documents, mais en fait ils m'ont troublé peu et pour clarifier les choses j'ai besoin de votre aide les gars.

Questions:

  1. .NET de l'Assemblée est la même chose que java .pot?
  2. .dll contient compilé code IL et .pot contient respectées .classe/octet fichiers de code?
  3. Ils disent ressources, de quel genre de ressources dont nous parlons ici? Des Images, des .les fichiers txt, etc. ou tous les possibles?

  4. J'ai examiné AWS (Amazon Web Service API pour java) et j'ai vu trois .fichier jar et ils sont

    1. aws-java-sdk-1.1.1.jar
    2. aws-java-sdk-1.1.1-javadoc.jar
    3. aws-java-sdk-1.1.1-sources.jar

et qu'ils contiennent .les fichiers de classe java documentation au format html et .fichiers java qui ne sont pas encore compilé. Alors j'ai réalisé .jar n'est pas uniquement composé compilé en byte codes.classe) et aussi d'autres choses.

  1. Lorsque je veux importer des bibliothèques java, serai-je toujours besoin d'importer .les fichiers jar?
  2. Lorsque je veux exporter mon propre bibliothèques java, j'ai besoin d'exporter en .fichier jar.

Merci pour l'aide à l'avance.

98voto

Mike Clark Points 5966

Est un .NET de l'Assemblée est la même chose que java .pot?

Ils jouent le même rôle, oui.

.dll contient compilé code IL et .pot contient respectées .classe/octet fichiers de code?

Oui. Bien que les Pots sont juste des fichiers zip (vous pouvez les ouvrir dans votre logiciel préféré Zip outil), de sorte qu'ils peuvent vraiment contenir à peu près tout.

Ils disent ressources, de quel genre de ressources dont nous parlons ici? Des Images, des .les fichiers txt, etc. ou tous les possibles?

Tout type de fichier est autorisé dans un BOCAL. Votre code Java peut accéder au contenu des fichiers à l'intérieur du bocal à l'aide, par exemple, getResourceAsStream ou getResource. Évidemment .les fichiers de classe dans un BOCAL sont spécialement traités (comme bytecode).

J'ai examiné AWS (Amazon Web Service API pour java) et j'ai vu trois .fichier jar et ils sont: aws-java-sdk-1.1.1.jar, aws-java-sdk-1.1.1-javadoc.jar, aws-java-sdk-1.1.1-sources.jar

Le dessus de l'emballage est assez commun. Parfois, les gens utilisent .pot comme une alternative extension de fichier .zip. Je trouve cette pratique à confusion, mais il n'est pas rare, et Amazon l'a fait dans ce cas. Je pense que cette pratique est devenue plus commune avec le lancement de Maven, qui stocke la référence de la source de code dans les fichiers nommés .jar.

aws-java-sdk-1.1.1.jar - C'est le seul fichier nécessaire à la compilation et à l'exécution. Il contient les classes (.les fichiers de classe) et les ressources nécessaires pour la bibliothèque de fonction.

aws-java-sdk-1.1.1-sources.jar - C'est juste un fichier zip qui contient le code source (à l'.fichiers java) pour la bibliothèque. Il n'est pas nécessaire pour la compilation ou à l'exécution. Il est fourni pour vous aider à résoudre les problèmes que vous pouvez rencontrer lors de l'utilisation de la bibliothèque. Vous pourriez décompressez ce fichier et de lire le code source de votre disque dur. Cependant, votre IDE pouvez probablement utiliser ce fichier directement par la création d'une "source de l'attachement" à la bibliothèque principale de la JARRE. Avec cette bibliothèque->source association a mis en place dans votre IDE, votre IDE sera en mesure de vous montrer le code source de la bibliothèque lorsque vous utilisez votre IDE est "Aller à la Définition" sur une bibliothèque de classe.

aws-java-sdk-1.1.1-javadoc.jar - C'est juste un fichier zip qui contient la JavaDoc de la bibliothèque. Encore une fois, il n'est pas nécessaire pour la compilation ou à l'exécution. JavaDoc est que de l'HTML, de sorte que vous pourriez décompressez ce fichier et le lire la JavaDoc HTML directement à partir de votre disque dur. Cependant, la plupart des IDEs pouvez créer un "javadoc attachement" à la bibliothèque principale, ce qui vous permet de tirer contextuelle JavaDoc de la bibliothèque de l'intérieur de l'IDE. En fait, la plupart des IDEs peut générer la JavaDoc sur la volée à partir de la sources.jar, donc j'ai rarement l'utilisation de javadoc pots plus.

Lorsque je veux importer des bibliothèques java, serai-je toujours besoin d'importer .les fichiers jar?

Il est généralement appelé "ajout de fichiers jar au classpath", mais oui. Vous avez à peu près toujours besoin de l'aide de Java trouver tous les Pots que vous utilisez, la construction d'un chemin de classe lors de la création ou de l'exécuter. En général, l'utilisation de Bocaux et les chemins de classe est beaucoup plus manuel et processus explicite que d'utiliser Dll dans .NET. Par exemple: Java n'a pas d'équivalent direct de .NET "global assembly cache"; aussi la vanille Java ne charge pas automatiquement .pots à partir du répertoire de travail.

Il y a quelques autres techniques pour la création d'un "automatique" sentiment classpath, mais ils sont un peu avancé: le Manifeste.MF chemins de classe sont possibles, par exemple-mais cette approche est rarement utilisé car il est fragile. À compter de la version 6 de Java, Java a un support limité pour l'utilisation des caractères génériques dans le classpath.

Lorsque je veux exporter mon propre bibliothèques java, j'ai besoin d'exporter en .fichier jar

C'est la norme, oui.

9voto

zourtney Points 4501

Je peux répondre à une partie de la question :-)

Si je comprends bien, un jar est juste un "Java Archive de fichiers". Il peut contenir tout ce que vous voulez, mais est le plus souvent utilisé pour distribuer des versions binaires de bibliothèques. Il peut également être utilisé pour distribuer des fichiers exécutables -- double-cliquant sur un fichier JAR de lancer l'application, si c'est comment il a été emballé.

En tant que tel, il peut être difficile de dire ce qu'est un particulier jar le fichier est destiné. Par exemple, qu'est - aws-java-sdk-1.1.1-sources.jar?. Est-ce un auto-installeur? Un comprimé archive du code? Sans la lecture de la documentation, il est n'importe qui conjecture.


Edit: en l'occurrence, je viens de télécharger le JAI jar le fichier en supposant que c'était un binaire construction de la bibliothèque. Mais en fait, il contient le programme d'installation de l'application.

8voto

Buhake Sindi Points 38654

Pour répondre à cette question spécifique.

  1. aws-java-sdk-1.1.1.jar
  2. aws-java-sdk-1.1.1-javadoc.jar
  3. aws-java-sdk-1.1.1-sources.jar

Le 1) est le compilateur java archive (jar), qui en .NET est appelé une DLL. Le 2) est la javadoc. Une documentation HTML de classes java (qui se trouve en 1)) avec la description de la méthode. Le 3) est le code source (java fichiers) de 1).

  1. Lorsque je veux importer des bibliothèques java, aurai-je toujours besoin d' l'importation .les fichiers jar?
  2. Lorsque je veux exporter mon propre bibliothèques java, ai-je besoin l'exportation en .fichier jar.

1) Si vous avez besoin d'utiliser une classe qui se trouve dans un fichier jar, alors vous aurez besoin pour l'importation jar dans votre projet.

2) Vous n'avez pas besoin d'. Vous pouvez regrouper votre dépendance à l'bocaux dans votre bibliothèque ou d'un paquet chacun dans leur propre pots et de les importer dans votre projet.

  1. .NET de l'Assemblée est la même chose que java .pot? Réponse: Oui.
  2. .dll contient compilé code IL et .pot contient respectées .classe/octet fichiers de code? Réponse: .les fichiers jar est un fichier archivé de ressources java, les classes, les images/icons/etc. qui est nécessaire pour une application, tout comme dans .DLL. Classe contient les fichiers de compilation java codes source (Appelé bytecode java).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X