Production de pots exécutables dans NetBeans
J'utilise NetBeans 6.5 et pour une raison quelconque, il ne produira pas exécutable jar "out of the box".
j'ai défini mon projet comme étant le projet principal, j'ai défini la classe principale dans le menu Propriétés du projet" exécuter " et cela fonctionne parfaitement quand J'appuie sur F6 pour l'exécuter.
j'ai regardé le fichier de manifestes et il n'a pas défini la classe principale là, et a également omis les dépendances de bibliothèque.
Ai-je raté quelque chose? Existe-t-il un moyen (autre que la modification manuelle du Manifeste) de produire des fichiers JAR exécutables?
EDIT: oui, j'ai essayé de nettoyer et reconstruire et il produit le jar dans le dossier dist, toujours avec la même manifeste.mf
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 10.0-b23 (Sun Microsystems Inc.)
17 réponses
je viens d'avoir le même problème dans NetBeans 7.2.1 avec un projet D'Application Java Maven. Modifiez la pom.fichier xml pour inclure le Maven assembly plugin avec un tweak à la réponse de myrho (doit faire référence au 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 méthode alternative est de construire un projet D'Application Java dans NetBeans qui n'utilise pas Maven. Sélectionner Fichier - > Propriétés du projet - > Construction - > Empaquetage et vérifier le Case à cocher" bibliothèques dépendantes de la copie".
si vous utilisez le plugin Maven assembly et que vous voulez construire un 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>
Source: Maven Assembly Plugin Usage
Essayez ce qui suit:
-
faites un clic droit sur votre projet sur le panneau "projets", sélectionnez "Propriétés
-
Cliquez sur "Exécuter" dans la nouvelle fenêtre.
-
éditez le champ" Main Class: "(cliquez sur Parcourir).
de cette façon, vous sélectionnerez la classe principale qui est le point d'entrée de votre demande et le Manifeste sera créé correctement.
Très simple, La .jar et .les fichiers jad sont là dans dist
dossier
je cherchais aussi la réponse et j'ai eu celle-ci de http://forums.netbeans.org/ptopic3465.html
résolu:)
avez-vous nettoyé le projet et reconstruit? Cela sonne comme vous le faites à droite. Heres quelques références juste au cas où:
http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.html http://dr.berkeley.edu/REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans
si vous nettoyez et construisez votre projet, il devrait créer le bocal dans le répertoire" dist".
il devrait créer le manifeste.mf au premier niveau de votre répertoire de projet.
en fait, je suis tombé sur cette page après être tombé dans le même numéro, j'ai édité le manifeste.mais les changements n'apparaissaient pas dans le manifeste jar.Fichier MF. J'ai trouvé le problème que j'avais et j'ai pensé transmettre l'information juste au cas où elle serait pertinente.
ce que je faisais de mal, c'était que je n'avais pas le projet sur lequel je travaillais en tant que projet principal, donc pendant que j'éditais le bon manifeste, je compilais le mauvais projet.
donc je suppose que le résumé de l'histoire avez-vous vérifié et voir si vous avez le bon projet sélectionné pour le manifeste.vous éditez un fichier mf?
j'ai eu l'expérience, que le processus de construction est différent, selon le type de projet.
je suppose que vous avez créé le projet" Java Class Library".
il suffit donc de créer un projet" Java Application", puis de fusionner toutes les classes.
alors, Netbeans ne supplantera pas, mais d'améliorer le "manifest.mf"
dans le pot.
bien sûr, c'est un stupide Netbeans bogue. Bien sûr, il devrait être possible d'ajouter des principaux classes par la suite.
EDIT: s'il vous Plaît voir mon autre réponse. C'est plus facile.
étrange en effet, il devrait le faire hors de la boîte, y compris le chemin de classe.
avez-vous mis à jour depuis une version précédente? Lors de la mise à niveau, NB va mettre à jour les fichiers de projet, mais parfois cette migration n'est pas fait bien et ce genre de scénario surgit. Il suffit de fermer le projet, renommer le projet nbproject dir en nbproject_old et faire nouveau projet - > projet Java avec des sources existantes. Réinitialisez la classe principale, ajoutez des dépendances et réessayez.
une autre approche consiste entièrement à développer, exécuter des essais unitaires, etc. dans NetBeans, mais utilisez ensuite un script maven ou ant pour faire 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 il vous permet également d'automatiser les constructions.
pour maven, vous pouvez ajouter des entrées au manifeste facilement en utilisant le plugin maven jar:
une meilleure solution:
Modifier nbproject/projet.propriétés et ajouter la rubrique :
manifest.file=manifest.mf
manifest.mf
doit être dans la racine du projet et contenir juste:
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
Works. Testé.
des informations intéressantes pourraient être ici:
aller à la vue Fichiers. Créer un manifeste.mf dans le répertoire racine.
/project_folder
build.xml
manifest.mf(edit here)
/dist
/src
/test
/build
en 7.3 il suffit d'activer Properties/Build/Package / Copy Dependent Libraries et la classe principale (en fonction de la cible sélectionnée) sera ajoutée au manifeste lors de la construction.
Pour forcer manuellement package création avec NetBeans IDE 8.0.2 ...
- dans Project navigator, élargissez votre < project > et faites un clic droit sur les fichiers / pom du projet.xml
- , Cliquez Sur Exécuter Maven / Objectifs
- Type "package" dans les Objectifs de champ
- Cliquez sur OK
la fenêtre de sortie s'affichera alors (sur Mac) ...
Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar
Ok avec neatbean vous pouvez faire les étapes suivantes ci-dessous:
1. Cliquez avec le bouton droit de la souris sur nom du projet choisir l'élément configurer la Configuration et choisir personnaliser
2. Choisissez Exécuter avis Classe Principale
3. Choisir parcourir et définir la classe si vous voulez exécuter. Après vous cliquez sur ok.
4. Terminer.