2011-03-03 3 views

Répondre

6

Type de.

La plupart des programmes Java sont stockés dans un fichier .jar.

Si la méthode main est spécifiée pour le fichier .jar, il peut être appelé de la même manière qu'un fichier .exe où il lance l'exécution du programme. Vous pouvez le faire avec java -jar program.jar.

Mais n'importe quel fichier .jar peut être chargé à partir d'un autre fichier et le code qu'il contient est chargé, de manière similaire à un fichier .dll. Cela peut être fait même si le fichier 'library' a une méthode main, il ne sera pas appelé automatiquement.

+1

Bonne réponse. Un nitpick est que les fichiers jar spécifient une main * classe * pas une méthode * * principale. –

+1

En outre, les fichiers jar peuvent * contenir * plusieurs méthodes principales. –

+0

En fait c'est une méthode. Le nom de classe peut être n'importe quoi, mais la méthode doit être appelée 'main' pour que la JVM la reconnaisse. –

3

La question est absurde. Java se compile en fichiers de classe bytecode qui sont interprétés par une machine virtuelle.

Vous pouvez lancer un tas de fichiers de classe dans un fichier zip et l'appeler un jar, mais Java n'a pas d'équivalent d'un exe ou dll.

+0

En fait, c'est le cas. Tout avec 'public void principal (String [])' est analogue à un exe, et tout avec un fichier de classe est analogue à une DLL. – corsiKa

+0

Ce n'est pas tout à fait analogue à un exe. L'OS ne sait pas comment exécuter le fichier/binaire seul, c'est seulement que la JVM sait comment charger le fichier JAR et traiter la méthode main(). –

+0

@glowcoder Je peux voir ce que vous dites - Je suppose que c'est à quel point vous voulez prendre du recul et des choses abstraites. Java n'a pas de fichiers qui se comportent ou sont utilisés comme des DLL ou des exécutables. Chaque fichier de classe Java est égal aux yeux de la JVM. –

0

Java a des fichiers jar (Java ARchive). Cela peut s'exécuter en tant que programme principal ou en tant que bibliothèques supplémentaires.

0

Vous pourriez dire qu'un "JAR exécutable" (qui a une classe principale déclarée dans son manifeste) est l'équivalent Java d'un fichier EXE, alors que les autres fichiers JAR sont plus comme des DLL. La ressemblance est probablement plus proche que vous ne le pensez car AFAIK, dans Windows la différence est plutôt faible, les formats de fichiers sont largement les mêmes et vous pouvez exécuter du code à partir d'une DLL via la ligne de commande.

0

L'équivalent Java d'une bibliothèque est un fichier jar dans lequel vous pouvez regrouper du code.

En outre, vous pouvez empaqueter un fichier manifeste dans le jar appelé META-INF/manifest.mf avec une directive qui dit exécuter cette classe lorsque le jar est appelé par le Java Runtime de la façon suivante: java -jar MyApp .jar

Ceci vous donne l'équivalent des bibliothèques et des exécutables.

Questions connexes