J'utilise NetBeans 6.5 et, pour une raison quelconque, il ne produira pas de fichier jar exécutable "prêt à l'emploi".
J'ai défini mon projet pour qu'il soit le projet principal, la classe principale définie dans le menu "exécuter" des propriétés du projet et cela fonctionne parfaitement lorsque j'appuie sur F6 pour l'exécuter.
J'ai consulté le fichier manifeste et il n'a en effet pas défini la classe principale et omis les dépendances de la bibliothèque.
Est-ce que je manque quelque chose? Existe-t-il un moyen (autre que la modification manuelle du fichier manifeste) de produire des fichiers jar exécutables?
EDIT: oui, j'ai essayé de nettoyer et de reconstruire et il a produit le jar dans le dossier dist, toujours avec le même manifeste.mf
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Je viens d'avoir le même problème dans NetBeans 7.2.1 avec un projet d'application Java Maven. Modifiez le fichier pom.xml pour inclure le maven Assembly plugin avec un Tweak à la réponse de myrho (doit référencer le descripteur prédéfini "jar-with-dependencies"):
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>your.app.MainClass</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-Assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Une autre méthode consiste à créer un projet d'application Java dans NetBeans qui n'utilise pas Maven. Sélectionnez Fichier -> Propriétés du projet -> Construire -> Conditionnement et cochez la case "Copier les bibliothèques dépendantes".
Si vous utilisez le plugin maven Assembly et que vous voulez construire un fichier jar exécutable avec des dépendances, vous devez ajouter cette partie à la configuration de la section maven-Assembly-plugin dans votre pom.xml:
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<!-- ... -->
<archive>
<manifest>
<mainClass>your.app.SampleClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Essaye ça:
Faites un clic droit sur votre projet dans le panneau "Projets", sélectionnez "Propriétés".
Cliquez sur "Exécuter" dans la nouvelle fenêtre.
Modifiez le champ "Main Class:" (cliquez sur Browse).
De cette manière, vous sélectionnerez la classe principale qui constitue le point d’entrée de votre application et le manifeste sera créé correctement.
Très simple, les fichiers .jar et .jad sont là dans le dossier dist
Je cherchais aussi une réponse et je l’ai obtenue de http://forums.netbeans.org/ptopic3465.html
Résolu :)
Avez-vous nettoyé le projet et reconstruit? On dirait que tu le fais bien. Voici quelques références au cas où:
http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.htmlhttp://dr.berkeley.edu/ REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans
Peut-être avez-vous créé Projet Java avec sources existantes au lieu de Application Java ?
J'ai eu un problème similaire et la création d'une nouvelle application Java, puis la copie manuelle des fichiers src ont résolu le problème.
J'ai eu l'expérience que le processus de construction est différent, En fonction du type de projet.
Je suppose que vous avez créé le projet "Java Class Library".
Il suffit donc de créer un projet "Application Java", puis de lui fusionner toutes les classes.
Ensuite, Netbeans va pas remplacer, mais améliorer le "manifest.mf"
dans le fichier JAR.
Bien sûr, c'est un bogue stupide de Netbeans. Bien sûr, il devrait être possible d’ajouter des classes principales Après.
EDIT: S'il vous plaît voir mon autre réponse. C'est plus facile.
Si vous nettoyez et construisez votre projet, vous devez créer le fichier jar dans le répertoire "dist".
Il convient de créer le fichier manifest.mf au niveau supérieur du répertoire de votre projet.
En fait, je suis tombé sur cette page après avoir rencontré le même problème. J'ai modifié le fichier manifest.mf mais les modifications ne sont pas apparues dans le fichier jar MANIFEST.MF. J'ai trouvé le problème que j'avais et je pensais transmettre l'information au cas où elle serait pertinente.
Ce que je faisais mal, c’était que je n’avais pas le projet sur lequel je travaillais en tant que projet principal. Ainsi, lors de la modification du manifeste, j’étais en train de compiler le mauvais projet.
Donc, je suppose que le résumé de l’histoire vous a permis de vérifier si vous avez sélectionné le bon projet pour le fichier manifest.mf que vous modifiez?
Pour forcer manuellement package creation avec NetBeans IDE 8.0.2 ...
La fenêtre de sortie montrera ensuite (sur Mac) ...
Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar
Allez à la vue Fichiers . Créez un fichier manifest.mf dans le répertoire racine.
/project_folder
build.xml
manifest.mf(edit here)
/dist
/src
/test
/build
Des informations intéressantes pourraient être ici:
Une meilleure solution:
Editez nbproject/project.properties et ajoutez l'entrée :
manifest.file=manifest.mf
manifest.mf
devrait être à la racine du projet et ne contenir que:
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
Travaux. Testé.
Ok, avec neatbean, vous pouvez effectuer les étapes suivantes: 1. Faites un clic droit nommez le projet choisissez élément Définissez la configuration et choisissez Personnalisez
2. Choisissez Run and notice Main Class
3. Choisissez Parcourir et définissez la classe si vous souhaitez exécuter. Après avoir cliqué sur ok.
4. Terminer.
Dans la version 7.3, il suffit d'activer Propriétés/Construire/Compiler/Copier les bibliothèques dépendantes et la classe principale (selon la cible sélectionnée) sera ajoutée au fichier manifeste lors de la construction.
Une autre approche consiste entièrement à développer, exécuter des tests unitaires, etc. dans NetBeans, puis à utiliser un script maven ou ant pour effectuer votre "vraie" construction. Il semble que ces types d’outils de construction vous donnent plus de contrôle sur la façon dont les choses sont construites et qu’elles vous permettent également d’automatiser les générations.
Pour maven, vous pouvez facilement ajouter des entrées au manifeste à l’aide du plugin maven jar:
Étrange en effet, il devrait le faire hors de la boîte, y compris le classpath.
Avez-vous mis à jour à partir d'une version précédente? Lors de la mise à niveau, NB met à niveau les fichiers du projet, mais parfois, cette migration n’est pas bien effectuée et ce genre de scénario s’affiche. Fermez simplement le projet, renommez le répertoire nbproject en nbproject_old et créez un nouveau projet -> projet Java avec des sources existantes. Définissez à nouveau la classe principale, ajoutez des dépendances et réessayez.