Comment configurer la classe principale dans le fichier manifest dans jar produit par le projet NetBeans

j'ai le problème suivant. J'ai un projet Java dans mon NetBeans IDE 6.8. Quand je compile et produit une .fichier jar contenant tout ce qui est possible, le META-INF n'est pas correct. Il ne contient pas la classe à exécuter - avec la méthode main ().

quand je clique sur le bouton Run à l'intérieur de L'IDE, tout fonctionne. Les paramètres du projet sont également placés dans la bonne direction - pointant vers une classe de mon projet.

j'ai essayé d'ajouter un dossier META-INF avec le fichier manifest mais je n'ai pas réussi.

est-ce qu'il y a un moyen de faire cela manuellement dans NetBeans, parce que j'ai trouvé que si j'ajoute la classe principale manquante dans le manifeste, tout fonctionne.

(je suppose que j'ai heurté une sorte de bug...)

/ / edit: Le résultat que je recherche est que je veux que le jar qui est créé avec la construction de NetBeans soit exécutable avec commande:

citation de Sun Documentation :

lorsque la classe principale est définie dans le fichier manifest, vous pouvez lancer l'application à partir de la ligne de commande: java -jar app.jar

17
demandé sur Leni Kirilov 2010-05-17 15:36:11

9 réponses

je vais faire un résumé des solutions proposées et celle qui m'a aidé!

après avoir lu ce rapport de bogue: bug dans la façon dont NetBeans 6.8 crée le jar pour un projet de bibliothèque Java.

  1. créer un manifeste.mf fichier dans la racine de mon projet

  2. Modifier manifeste.mf. Le mien ressemblait à ceci:

    Manifest-Version: 1.0
    Ant-Version: Apache Ant 1.7.1
    Created-By: 16.3-b01 (Sun Microsystems Inc.)
    Main-Class: com.example.MainClass
    Class-Path: lib/lib1.jar lib/lib2.jar
    
  3. ouvrir le fichier /nbproject/project.propriétés

  4. ajouter la ligne

    manifest.file=manifest.mf

  5. Clean + de Construire du projet

Désormais la .le pot est de développer correctement.

Merci beaucoup vkraemer "1519360920

27
répondu Leni Kirilov 2010-05-17 18:54:59

il semble que vous rencontriez un bug dans la façon dont NetBeans 6.8 crée le jar pour un projet de bibliothèque Java .

la question sous-entend qu'il y a une solution de rechange.

Je n'ai pas été en mesure de vérifier qu'avec NB 6.8 et/ou NetBeans 6.9-dev...

vous pouvez vous inscrire auprès du NetBeans.org site web / suivi de la question et mettre à jour la question et ajouter votre "vote".

4
répondu vkraemer 2010-05-17 17:22:37

c'est simple.

  • clic droit sur le projet
  • Aller à Propriétés
  • Aller à Exécuter dans Catégories arbre
  • définit la classe principale dans le panneau latéral droit.
  • construire le projet

c'est tout. Espérons que cette aide.

3
répondu Ravindra Gullapalli 2010-05-17 13:08:47

En 7.3 suffit d'activer les Propriétés/Build/Package/Copie Dépendant des Bibliothèques et de la classe principale sera ajouté à manifester lors de la construction en fonction cible sélectionnée.

1
répondu Samuel Ventura 2013-04-20 01:40:56

ajout du Manifeste.fichier=manifeste.mf dans le projet.propriétés et création de manifestes.mf fichier dans le répertoire du projet fonctionne bien en NB de 6,9 et devrait fonctionner également en NB 6.8.

0
répondu Tomas Zezula 2010-05-17 17:46:10

il s'agit d'un problème qui se pose toujours au 7.2.1 . Créer une bibliothèque cause Vous ne savez pas ce qu'il fera si vous en faites une application et vous êtes vissé.

a trouvé comment corriger cela cependant. Modifier nbproject/project.properties , changer la ligne suivante à false comme indiqué:

mkdist.disabled=false

Après cela, vous pouvez modifier la classe principale dans les propriétés, et il sera reflété dans le manifeste.

0
répondu Jeff Palmer 2013-01-03 23:08:22

le vrai problème est comment Netbeans bloque ses projets. Le" chemin de classe: "dans le fichier de manifestes est inutile lors de la publication réelle de votre programme pour d'autres à utiliser. Si vous avez une Bibliothèque externe ajoutée dans Netbeans il agit comme un paquet. Je vous suggère D'utiliser un programme comme WINRAR pour afficher les fichiers dans le jar et ajouter vos bibliothèques sous forme de paquets directement dans le fichier jar.

à quoi doit ressembler l'intérieur du fichier jar:

MyProject.jar

    Manifest.MF
         Main-Class: mainClassFolder.Mainclass

    mainClassFolder
         Mainclass.class

    packageFolder
         IamUselessWithoutMain.class
0
répondu 2013-07-17 19:58:37

je lis, je lis et je lis pour comprendre pourquoi je recevais une erreur de classe non trouvée, il s'avère que le manifeste .mf avait une erreur dans la ligne:

Main-Class: com.example.MainClass

j'ai corrigé l'erreur en allant à Propriétés du projet dialogue (clic droit fichiers du projet ), puis Run et classe principale et corrigé tout ce que Netbeans a décidé de mettre ici. Netbean insérer le nom du projet au lieu du nom de la classe. Aucune idée de pourquoi. Probablement en état d'ébriété sur muratina...

0
répondu githeko 2017-05-30 23:35:16

n'hésitez pas à consulter vos dossiers de projet après avoir construit votre projet pour la première fois. Recherchez un fichier de manifeste et choisissez Ouvrir avec bloc-notes.

ajouter la ligne:

Main-Class: package.myMainClassName

package est votre colis et myClassName est la classe avec la méthode main(String[] args) .

0
répondu madalitso Misomali 2018-07-11 15:26:10