Quelle est la différence d'éclipse entre l'exportation en tant que fichier JAR et l'exportation en tant que fichier JAR exécutable? Ne sont-ils pas tous les deux exécutables? Quels sont les avantages / inconvénients de chacun?
Quelle est la différence d'éclipse entre l'exportation en tant que fichier JAR et l'exportation en tant que fichier JAR exécutable? Ne sont-ils pas tous les deux exécutables? Quels sont les avantages / inconvénients de chacun?
Réponses:
Le fichier jar exécutable contient un fichier MANIFEST.MF, qui définit la classe Main à exécuter lorsque le fichier jar est exécuté.
Les fichiers jars non exécutables ne sont que des bibliothèques de classes, qui peuvent être ajoutées au chemin de classe afin que le code soit réutilisé (il contient également le fichier manifeste, mais pas de classe principale)
Un fichier jar exécutable est un fichier jar qui contient un fichier manifeste incorporé qui inclut la déclaration «Main-Class:». La "classe principale" doit être définie pour que le moteur d'exécution Java sache quelle classe appeler lorsque le fichier jar est "exécuté". Si un fichier jar n'inclut pas de manifeste avec la "Main-Class:", il n'est pas considéré comme un "fichier jar exécutable" - c'est juste une bibliothèque de code Java.
Je suppose que c'est la différence dans la façon dont Eclipse exporte le pot, mais pas sûr à 100%.
Voir ce lien pour plus d'informations: http://www.skylit.com/javamethods/faqs/createjar.html
Avec le fichier JAR standard, vous devez spécifier la classe avec la méthode main sur la ligne de commande lors de l'exécution du fichier jar. Avec un JAR exécutable, il existe un fichier manifeste qui contiendra ces informations afin que vous puissiez simplement taper java -jar myRunnable.jar
ou simplement double-cliquer dessus.
Dans mon cas, j'avais l'habitude d'exporter en tant que jar quand j'avais toute la classe principale et tous les répertoires de chemin des bibliothèques spécifiés dans le manifest.mf. Si de nombreuses applications utilisent la même bibliothèque, il n'est pas nécessaire d'exporter la bibliothèque partagée pour chaque fichier jar. Cela accélère le fonctionnement du pot. Mais, souvent en raison d'un problème de configuration dans un chemin de classe de serveur différent, il n'est pas possible d'accéder à la bibliothèque et dans ce cas, il est logique d'exporter le fichier jar exécutable qui rend le fichier lent à exécuter et volumineux.