Manifeste de l'attribut pour java jar
Avec toute l'aide de vous, j'ai pu terminer mon premier projet en java. Maintenant, je veux créer un bocal et l'exécution de l'application (projet Java - c'est une simple application console qui est d'avoir un autre projet(application console) comme une dépendance) du pot.
J'ai créé un jar avec eclipse par clic droit - export - créé un bocal. Lorsque j'essaie d'exécuter ce pot de mon cmd, j'ai un message d'erreur (ci-dessous est l'erreur que je suis geting)
no main manifest attribute, in AAA.jar
J'ai Googlé l'erreur - la plupart d'entre eux soumis à créer le fichier Manifeste. J'ai créé un fichier de manifeste comme ci-dessous dans le projet égal src niveau
Manifest-Version: 1.0
Main-Class: com.Pacakename.mainclass
Class-Path: log4j-1.2.16.jar db2jcc.jar db2jcc_license_cu.jar
Puis J essayé d'exécuter de nouveau le bocal, mais cette fois, il dit pas de méthode main où j'ai une méthode main de la classe
S'il vous plaît quelques un s'il vous plaît expliquer clairement de l'étape de création du Manifeste(il a vraiment aider moi si vous me montrer la structure du dossier de l'endroit où nous avons le fichier de Manifeste)
Vous devez vous connecter pour publier un commentaire.
Supposons que vous avez structure de répertoire suivante:
Pour compiler un tel projet dans la ligne de cmd, (sans dépendances externes), vous devez invoquer des commandes
Cela va créer
Main.class
fichier dansbin
répertoire. Pour pack pour *.fichier jar, vous pouvez:1) créer pot avec des fichiers binaires et de spécifier la classe Principale dans cmd
2) créer des Manifes et jouer à pot (je vais me concentrer sur celui-ci)
Vous devez créer
META-INF
répertoire soussrc
et à l'intérieur de créerMANIFEST.mf
fichierVotre manifeste devrait ressembler à ceci:
N'oubliez pas d'ajouter la ligne vide à la fin sur le Manifeste!!
Dans ce cas, vous indiquez
Manifest-Version
attribut,Created-By
attribut, et le nom pleinement qualifié de la classe principale à exécuter dansMain-Class
attributPour créer Pot avec ce fichier et vous fichier binaire, d'invoquer des commandes
cela va créer un nouveau pot appelé
MyJavaProject.jar
et utiliser votre manifesteSi votre projet dépend de l'classas ou un bocal, ajoutez-les à votre classpath lors de la compilation (
-cp
option) et d'ajouter une autre ligne dansManifest
Recompiler et de créer un nouveau pot et profiter de votre Java quête 🙂
Pour plus d'info sur le Manifeste, veuillez consulter: docs
PS: Travailler avec des bocaux,amnifest de ligne de cmd peut sembler laid, mais il peut vous enseigner quelques-ava-comme les concepts. Si vous voulez sauter, s'il vous plaît envisager d'utiliser Apache Maven ou Apache Ant
Si vous utilisez maven je peux vous recommander d'utiliser la l'ombre plugin pour produire des exécutables, des bocaux avec toutes les dépendances (et manifeste :-)) à bord.
De les inclure dans votre pom.xml:
Et ensuite exécuter
mvn clean package shade:shade
de construire un pot que vous pouvez exécuter à partir de la ligne de commande avecjava -jar jarfilename.jar
.Si vous utilisez eclipse, vous pouvez utiliser le bouton "Exporter" --> Runnable jar pour atteindre vos objectifs.
Dans ce cas, vous devez posséder un permis valide de configuration d'exécution de votre projet depuis eclipse utilise cette configuration d'exécution comme une sorte de plan d'action pour l'runnable jar.
Dans ce cas, eclipse va construire le manifeste pour vous.