2010-11-06 2 views
8

J'ai développé mon programme en utilisant Eclipse comme IDE. J'avais l'habitude d'utiliser l'option File|Export| Runnable JAR file pour créer dist build pour le client.Erreur "Impossible de trouver la méthode principale à partir d'une configuration de lancement donnée" lors de l'exportation d'un fichier jar depuis Eclipse

Je travaillais avec le projet en utilisant le bouton Run ou (souvent) Debug dans eclipse (donc j'ai la configuration pour le projet avec la méthode principale valide).

Malheureusement quand j'ai créé hier la construction que j'avais erreur suivant lorsque j'ai essayé d'exécuter l'application:

Failed to load Main-Class manifest attribute from My.jar 

Puis, quand je retenté l'exportation, je trouve le problème suivant dans le journal d'exportation:

Could not find main method from given launch configuration 

I Je n'ai aucune idée de ce qui pourrait causer ce problème. Je pense que je n'avais rien changé dans la configuration de mon projet. Et je suis tester mes builds donc je suis sûr que cette option fonctionnait correctement.

J'apprécie toute aide.

+0

Parfois, vous devrez peut-être redémarrer votre DIE si vous utilisez un. [Voir ce] [1] [1]: http://stackoverflow.com/questions/13527869/could-not-find-main-method-from-given-launch-configuration-when-using -javasca – ABData

+0

Parfois, vous devrez peut-être redémarrer votre IDE si vous en utilisez un. [Voir ce] [1] [1]: http://stackoverflow.com/questions/13527869/could-not-find-main-method-from-given-launch-configuration-when-using -javasca – ABData

+0

Vous devrez peut-être redémarrer votre IDE si vous en utilisez un.Voir ceci: http://stackoverflow.com/questions/13527869/could-not-find-main-method-from-given-launch-configuration-when-using-javasca – ABData

Répondre

5

Est-ce que vous sélectionnez la 'Configuration de lancement' correcte dans la boîte de dialogue d'export? Assurez-vous que cela provient de votre projet. De plus, une fois exporté, vous pouvez décompresser le fichier jar et regarder dans le fichier 'META-INF/MANIFEST.MF' - il devrait y avoir une entrée 'Main-Class' avec le nom complet de votre classe où la méthode main() est .

+0

Merci pour le répondeur. Oui, j'ai vérifié que j'ai sélectionné la configuration de lancement valide lors de l'exportation. Encore une chose, est-ce que je peux juste éditer ce fichier et créer un nouveau zip (pot)? Cela ne changera-t-il pas la somme de contrôle de jar ou quelque chose (désolé pour la question de noobish)? –

+0

J'ai trouvé la réponse à une question de reconditionnement: «Ils peuvent également utiliser des outils zip, mais il faut faire attention à l'ordre des entrées dans les en-têtes des fichiers zip car le manifeste doit probablement être le premier. http://en.wikipedia.org/wiki/JAR_(file_format) –

+0

J'accepte votre réponse pour deux raisons: 1. vous m'aidez à résoudre mon problème (j'ai utilisé l'outil jar au lieu de zip). 2. après googler un peu je pense qu'il est possible que mieux répondre alors "il éclipse bug" n'existe pas. –

2

J'ai rencontré ce problème et aucune des autres options n'a fonctionné. Même en supprimant et en commençant avec un nouvel espace de travail. Dans mon cas, le problème était que je n'avais pas ajouté manuellement le répertoire "classes" de mon projet au classpath de la configuration de débogage que j'utilisais pour déboguer l'application java. Je ne sais pas pourquoi il n'a pas ramassé le répertoire des classes automatiquement dans le cadre du projet à partir duquel j'ai exécuté l'application. En tout cas, il a recommencé à travailler après ça.

2

juste eu le même problème: s c'est ennuyeux mais facile à corriger manuellement dans le fichier manifeste.

  1. Ouvrez le fichier .jar avec winrar ou 7zip.
  2. localisez le fichier manifeste (dossier META-INF)
  3. changez-le en celui-ci.

Manifest-Version: 1.0 main-class: (package).(main-class)

Dans mon cas, je l'avais dans le package par défaut.

Manifest-Version: 1.0 main-class: run

Questions connexes