web-dev-qa-db-fra.com

L'éditeur ne contient pas de type principal

En parcourant l'exemple de code Scala sur le site Web de Scala, nous avons rencontré une erreur gênante en essayant de l'exécuter.

Voici le code: http://www.scala-lang.org/node/45 . En l'exécutant sur Eclipse, j'ai reçu le message "L'éditeur ne contient pas de type principal" qui l'empêche de s'exécuter.

Dois-je faire quelque chose ... c.-à-d. Diviser ce fichier en plusieurs fichiers ou quoi?

85
Helen Neely

J'ai beaucoup ce problème avec Eclipse et Scala. Cela aide si vous nettoyez votre espace de travail et reconstruisez votre projet.

Parfois, Eclipse ne reconnaît pas correctement les fichiers à recompiler :(

Edit: Le code fonctionne bien dans Eclipse

34
nuriaion

Dans Eclipse, assurez-vous d’ajouter votre dossier source dans les propriétés du projet -> chemin de construction Java -> source. Sinon, la fonction main () peut ne pas être incluse dans votre projet.

87
milkplus

Vous devez vous assurer que vos fichiers .Java se trouvent dans le dossier .src dans Eclipse. J'ai eu le même problème jusqu'à ce que je l'aie compris.

27
ultra99

Un moyen plus simple est de fermer votre projet et de le rouvrir!

21
static

Assurez-vous simplement que le dossier dans lequel vous travaillez est ajouté au chemin créé:

right-click votre dossier, -> build Path -> Use as source Folder

et il devrait maintenant y trouver main

j'espère que cela t'aides

"" "" "right-click votre dossier, -> build Path -> Use as source Folder" "" Merci.

Cela résout le problème, 

17
kholofelo Maloma

J'ai eu le même problème. J'ai essayé toutes sortes de choses. Et j'ai appris que

  1. Mes fichiers .Java n'étaient pas liés et 
  2. ils n'ont pas été placés dans le dossier 'src'.

Choses que j'ai faites:

Propriétés du projet >> Chemin de construction Java >> Source 

  • Suppression du dossier "src" d'origine qui était vide à l'aide de l'option "Supprimer"
  • Ajout de la source contenant mes fichiers .Java source à l'aide de l'option "Ajouter un dossier"

Cela a résolu l'erreur.

6
Anand Dhole

Une solution rapide: 

Commencez par exclure le package: Cliquez avec le bouton droit de la souris sur le package source >> Chemin de construction >> Exclure

Puis incluez-le à l’arrière: Faites un clic droit sur le paquet source >> Chemin de construction >> Inclure

3
rwc

Ce que vous devez faire, c'est créer un projet Java, mais assurez-vous de placer ce fichier dans le fichier de package de ce projet, sinon vous rencontrerez la même erreur.

enter image description here

3
AbsintheSyringe
***

Il suffit de fermer et de rouvrir

*** votre projet dans Eclipse. Parfois, il y a des problèmes de liaison. Cela a résolu mon problème

3
Mohit Singh

Vous pouvez essayer d’exécuter la fonction principale à partir de la barre latérale d’Eclipse.

solution

2
Fei

vous devriez créer votre fichier en 

en sélectionnant sur le côté droit, vous trouverez votre nom de fichier,

sous cela trouvera le dossier src leur leur clic droit sélectionnez -> option de classe

leur votre fichier devrait être créé

2
vijaya

Assurez-vous que votre fichier .Java est présent dans le package str ou dans un autre package. Si le fichier Java avec la fonction principale se trouve en dehors de tous les packages, cette erreur est générée.

2
Sahil Pruthi

Ce code est valide. Avez-vous essayé de le compiler à la main avec du scalac? De plus, avez-vous appelé votre fichier "carnet d'adresses", en minuscule, comme le nom de l'objet?

En outre, j’ai constaté que pour une raison quelconque, Eclipse avait défini la classe principale sur ".addressbook" au lieu de "addressbook".

2
Daniel C. Sobral

Le fichier que vous avez créé est peut-être en dehors du dossier src (source). Essayer d'appeler l'objet de classe (à partir du fichier situé dans le dossier src) à partir du fichier .Java situé en dehors du dossier source provoque la même erreur. Copiez le fichier .Java dans le dossier source, puis générez-le. L'erreur aura disparu.

1
Vamsi Tallapudi

exécutez "Eclipse -clean -refresh" à partir de la ligne de commande. Cela a résolu le problème pour moi lorsque toutes les autres solutions ont échoué. 

1
MikeG

J'ai juste eu ce problème aussi. La solution consiste à s'assurer qu'Eclipse a créé le projet en tant que projet Java. Créez simplement un nouveau projet Java et copiez votre classe dans le dossier src (et importez les éventuelles dépendances). Cela devrait résoudre le problème.

1
KullDox

J'ai eu le même problème. J'ai eu la classe principale du paquet src, dans un autre dossier. Je le déplace dans et corrige le dossier et résolu

1
jacruz

S'il s'agit d'un projet maven, vérifiez que le fichier Java est créé sous src/main/Java

Si vous n'obtenez pas, veuillez modifier le chemin JRE et créer les fichiers Java dans la structure de dossiers ci-dessus.

1
user3801543

Cela pourrait être le problème avec le chemin de génération Java . Essayez les étapes suivantes:

  1. Accéder aux propriétés du projet 
  2. Aller au chemin de construction Java
  3. Allez dans l'onglet Source et ajoutez le dossier src du projet

Cela devrait résoudre le problème.

1
AalekhG

La réponse correcte est: la bibliothèque Scala doit précéder la bibliothèque JRE dans le chemin de construction. 

Allez à Java Buildpath> Order and Export et déplacez la bibliothèque Scala vers le haut.

1
MGM

J'ai eu ce problème avec un projet Java que j'ai importé du système de fichiers (sous Eclipse Helios). Voici un indice: le code src ne semble pas avoir été compilé du tout, car aucun répertoire "bin" ne s'est affiché.

Je devais créer un projet Java à partir de rien (à l'aide de l'assistant), puis comparer les fichiers .project des projets inutilisés et des projets en activité.

Le projet donnant "L'éditeur ne contient pas de type principal" avait ceci comme "buildSpec" dans le fichier .project:

<buildSpec>
</buildSpec>

Mais le projet de travail avait ceci comme "buildSpec":

<buildSpec>
    <buildCommand>
        <name>org.Eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

Je l'ai copié dans et le projet importé a fonctionné.

Je sais que ma réponse est pour Java, mais il en va peut-être de même pour votre projet Scala.

1
user2704136

J'ai aussi ce problème après avoir changé le dossier source. La solution qui a fonctionné est simplement de modifier le fichier et de l’enregistrer. 

0
Hunsu

Sur la raison d'une erreur de: "L'éditeur ne contient pas de type principal"

Erreur rencontrée dans: Eclipse Neon

Système d'exploitation: Windows 10 Pro

Lorsque vous copiez vos dossiers source à partir d'une clé USB et que vous oubliez le dossier Eclipse_Projects.metadata. 

Outre une nouvelle installation, vous devrez vous assurer de fusionner les fichiers de (Thrumb-drive) F: Eclipse_Projects.metadata.plugins. 

Ces plug-ins sont les éléments de code de bibliothèque extraits du SDK lors de la création d'une classe. Tout dépend vraiment de ce que vous ----- importez javax.swing. *; ----- dans votre fichier. En raison de votre transfert, assurez-vous de fusionner les ------ Eclipse_Projects.metadata.plugins ------ manuellement avec un simple copier-coller, tout en acceptant la fonctionnalité de saut des plugins déjà présents dans votre dossier.

Pour Windows 10: vos dossiers de travail suivent un schéma similaire de hiérarchie des fichiers. 

C: Utilisateurs> Ordinateur portable Mikes> espace de travail> .metadata> .plugins <--- fusionner les plugins ici

0
WantaBeCoder

Pour moi, dans Eclipse 3.6, ce problème se produit lorsque ma méthode principale n'est pas publique. J'ai causé le problème en ayant une méthode principale comme celle-ci:

static void main(String[] args) 

Le dubugger était incapable de détecter cela par lui-même. Je suis assez surpris qu'Eclipse ait négligé cela.

0
djangofan

Une dernière chose à vérifier: assurez-vous que votre fichier source contient la déclaration de package correcte correspondant au sous-répertoire dans lequel elle se trouve. manque la déclaration de paquet.

0
Daniel Ashton

Suivez les étapes ci-dessous:

  1. Sauvegardez tous vos fichiers .Java vers un autre emplacement
  2. supprimer tout le projet Java
  3. Créez un nouveau projet Java en faisant un clic droit sur la racine et cliquez sur nouveau
  4. restaurer tous les fichiers au nouvel emplacement !!
0
Mani Kandan

Ont fait face au même problème, résolu en cliquant avec le bouton droit de la souris sur la méthode principale dans la vue d'ensemble et en l'exécutant en tant qu'application Java. 

0
Naresh

Dans le pire des cas, créez à nouveau le projet avec toutes les importations depuis le début. Dans mon cas, aucune des autres options ne fonctionnait. Ce type d'erreur suggère qu'il y a une erreur dans les paramètres du projet. Une fois, j'ai réussi à le résoudre, mais une fois que d'autres développements ont été réalisés, l'erreur est revenue. Recréer tout depuis le début m'a aidé à comprendre et à optimiser certains liens, et maintenant je suis convaincu que cela fonctionne correctement.

0
Sergiu

Dans mon cas particulier "Hello World", ce problème était dû au fait que ma méthode main() était à l'intérieur de Scala class.

Je mets la méthode main() sous la Scala object et l'erreur a disparu.

En effet, Scala object en termes Java est l’entité qui ne contient que des membres et des méthodes statiques.

C'est pourquoi la fonction public static void main() de Java dans Scala doit être placée sous object.

(Scala class ne peut pas contenir d'éléments statiques)

0
Vlad.Bachurin

Fichier >> Importer >> Projets existants dans Workspace >> Sélectionnez Archive Filed >> Parcourir et localiser le fichier >> Terminer. S'il est déjà importé d'une autre manière, supprimez-le et essayez-le de cette façon. J'avais le même problème jusqu'à ce que j'essaye. 

0
Mike

Essayez 'Update Project'. Une fois que j'ai fait cela, l'option Exécuter en tant qu'application Java est apparue.

0
George Santhosh