Impossible de choisir la classe comme classe principale dans IntelliJ


98

J'ai un projet Java dans IntelliJ auquel je viens d'ajouter un tas de fichiers dans une hiérarchie de dossiers imbriqués. Beaucoup de ces fichiers sont des tests et incluent la méthode principale, je devrais donc pouvoir les exécuter. Cependant, je ne peux pas comprendre comment faire cela.

Je suis nouveau dans IntelliJ et précédemment, les fichiers sont apparus dans la hiérarchie du projet avec le symbole qui correspond à «la classe Java qui contient la déclaration de la méthode main ()». mais dans ce scénario, ils apparaissent avec le symbole correspondant à «classe Java située hors de la racine source».

Alors, comment puis-je compiler et exécuter ces fichiers?


2
Pour quiconque vient ici avec le même problème mais pas de problème de "racine source" - les indicateurs de runnabilité et de "classe principale" ont disparu lorsque j'ai importé accidentellement com.sun.org.apache.xpath.internal.operations.String- ne peut toujours pas comprendre pourquoi cela s'est produit! (IDEA 2018.1, JDK 8, Maven)
Janaka Bandara

Réponses:


64

La documentation que vous avez liée a en fait la réponse dans le lien associé à la «classe Java située hors de la racine source». Configurez votre source et testez les racines et cela devrait fonctionner.

https://www.jetbrains.com/idea/webhelp/configuring-content-roots.html

Puisque vous avez déclaré que ce sont des tests, vous devriez probablement les utiliser marqués comme Test Source Root au lieu de Source Root.


1
Assurez-vous de configurer correctement vos dépendances de module. Marquez le module dans la structure du projet et «F4» est la clé par défaut pour ouvrir les paramètres du module (au moins sous Linux). (Ou faites un clic droit et choisissez «Ouvrir les paramètres du module»). J'espère que cela pourra vous aider un peu plus loin: jetbrains.com/idea/webhelp/…
trappski

Ah, oui, les dépendances ont résolu mon problème à la fin. ty.
CE

137

Sélectionnez le dossier contenant l'arborescence des packages de ces classes, cliquez avec le bouton droit de la souris et choisissez "Marquer le répertoire comme -> Racine source"


Cela a fait ce que j'ai demandé, mais maintenant, il ne peut pas résoudre les déclarations d'importation. D'autres erreurs sont également apparues. Des idées?
CE

Par exemple, il m'a demandé de préfixer les méthodes avec «odeToJava.modules». puis s'est plaint qu'il ne pouvait pas résoudre odeToJava.
CE

Comment accéder au menu qui vous permet de faire cela? Vous affichez les répertoires et les fichiers du projet dans la vue Projet (alt + 1) puis faites un clic droit sur le dossier en suivant les instructions de OP.
James

J'ai fait cela mais cela me permet uniquement de sélectionner les fichiers de notes et non le coureur JAVA principal.
Oliver Dixon

1

Voici la procédure complète pour IDEA IntelliJ 2019.3:

  1. Fichier> Structure du projet

  2. Sous Paramètres du projet> Modules

  3. Sous l'onglet «Sources», faites un clic droit sur le dossier «src» et sélectionnez «Sources».

  4. Appliquer les modifications.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.