web-dev-qa-db-fra.com

Le programme de démarrage du printemps ne trouve pas la classe principale

J'ai un programme qui fonctionne comme une application de démarrage de printemps dans Eclipse. Le programme fonctionnait bien. Puis j'ai fait ce qui suit:

Faites un clic droit sur projet -> Run As -> Maven Test.

C'était accidentel. Lorsque j’ai ensuite essayé d’exécuter à nouveau le programme en tant qu’application de démarrage printanier, l’erreur suivante a été renvoyée. 

Error: Could not find or load main class com.bt.collab.ALU.api.webapp.Application

Comment puis-je diriger l'application vers ma classe principale? Merci

39
Christopher Jobling

La classe principale est configurable dans pom.xml

<properties>
    <start-class>com.bt.collab.ALU.api.webapp.Application</start-class>
</properties>
28
MariuszS

J'ai eu le même problème. Essaye ça :

Clic droit sur le projet -> Maven -> Mettre à jour le projet

Ensuite, relancez le projet. J'espère que cela fonctionne pour vous aussi.

57
mantri

Consultez la rubrique "Exécuter -> Exécuter les configurations ..." dans Eclipse. Vous devez supprimer le nouveau que vous avez créé par erreur, vous devriez toujours avoir le existant. 

Je soupçonne qu’il a créé une nouvelle configuration d’exécution pour le «Test en tant que Maven» et que vous commencez toujours celui-ci.

11
thedoctor

Si vous utilisez Spring Boot et que les suggestions ci-dessus ne fonctionnent pas, consultez la vue Problèmes Eclipse (disponible dans Fenêtre -> Afficher la vue -> Problèmes).

Par exemple, vous pouvez obtenir la même erreur (Erreur: impossible de trouver ou de charger la classe principale groupId . Application) si l’un de vos fichiers jar est corrompu. Eclipse se plaindra de ne pas pouvoir trouver la classe Applications, même si le mauvais fichier est la cause première. 

La vue Problèmes, cependant, identifiera le mauvais récipient pour vous.

Dans tous les cas, je devais aller manuellement à mon dépôt MVN local (en .m2) et supprimer manuellement le fichier jar corrompu, puis le mettre à jour (clic droit sur le projet dans l'explorateur de packages), Maven -> Mettre à jour le projet ... -> OK (en supposant que le projet correct est coché).

11
Tihamer

Cela m'est arrivé après la mise à jour du pom (ajout de quelques dépendances).

L'étape suivante m'a aidé à éviter cette erreur

right click on the project > maven > update project
6
tadtab

Utilisez spring-boot: exécutez commande pour lancer l’application Spring Boot:

Condition: 1. Ajouter la propriété suivante à pom.xml

<property>    
<start-class>com.package.name.YourApplicationMainClass</start-class>
</property>

2. Construisez votre projet

Configurez ensuite la commande maven avec spring-boot: run.

La navigation:

Clic droit projet | Run As | Exécuter la configuration ... | Ajouter une nouvelle configuration Maven avec la commande spring-boot: run

4
Techflash

Si quelqu'un utilise Gradle pour la construction, le problème sera résolu en ajoutant les lignes suivantes dans build.gradle file

apply plugin: 'application'

mainClassName = "com.example.demo.DemoApplication"

4
dkb

J'ai utilisé la version spring 1.5.3.LELEASE et des dépendances de pom comme 

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent> 

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
   </dependencies>

Et ma classe principale était 

@SpringBootApplication
public class SpringAppStarter {


    public static void main(String[] args) {

        SpringApplication.run(SpringAppStarter.class, args);
    }

}

Mais toujours pendant l'exécution de la classe principale, j'obtenais: 

Impossible de trouver ou de charger la classe principale ... avec le nom de ma classe.

Je pouvais voir que la classe était disponible dans le chemin de classe et que j'utilisais STS IDE.

Je ne recevais pas la raison du problème alors j'ai essayé la construction manuelle par le biais de Maven avec 

mvn clean install

Encore le problème était là alors je réalise que mon projet a deux bibliothèques

  1. Bibliothèque de référence 
  2. Bibliothèque Maven 

Ce que j'ai fait:
J'ai créé un autre dossier mavenRepo, je le reconstruis à nouveau et actualise mon projet. Après cela, cela a fonctionné et j'ai vu que Maven Library avait été supprimé du chemin de classe du projet.

Les problèmes étaient liés à l'exécution de plusieurs versions lors de l'exécution, de sorte qu'il n'a pas été en mesure de trouver la classe appropriée pour exécuter mon application. L’autre solution répertoriée dans cette page résout également le problème, mais si vous faites une erreur dans 

  1. Classe d'annotation 
  2. pom entrée 
  3. version du pot, etc. 

J'espère que cela pourra résoudre le problème si quelqu'un a ce problème 

2
Kushwaha

la suppression des anciens fichiers jar de .m2 et la mise à jour du projet Maven doivent constituer l’étape principale . Dans la plupart des cas, le problème est résolu.La raison de ce problème est en grande partie la corruption de vieux jar

2
Sujeet

Erreur: Impossible de charger ou de trouver la classe principale

Projet: Spring Boot Outil: STS


Résoudre les étapes:


  1. Lancer le projet

  1. Voir dans l'onglet problèmes, il montrera l'erreur corrompue 

  1. Supprimer le fichier JAR (fichier JAR corrompu) du dossier .m2

  1. Mettre à jour le projet 

  1. Courir avec succès

1
suraj chennoju

A rencontré le même problème et a pu résoudre le problème en procédant comme suit:

  1. Fichier -> Invalider le cache et redémarrer
  2. Fichier -> Nouveau -> Projet de source existante
  3. Sélectionnez le fichier pom.xml simplement (pas le répertoire complet du projet) pour charger le projet. Le projet sera configuré automatiquement.
1
Bilal Ahmed Yaseen

Je sais que c'est assez tardive réponse. Mais cela pourrait encore aider de nouveaux apprenants. L'exemple suivant concerne uniquement Springboot avec NETBEANS . Je devais suivre les étapes suivantes:

Étape 1 . Suivez la réponse de @Mariuszs.

Étape 2. Cliquez avec le bouton droit de la souris sur le projet -> Propriétés -> EXÉCUTER . Assurez-vous que le champ Classe principale est doté de la classe de démarrage correcte. Autre Cliquez sur parcourir et sélectionnez parmi les classes disponibles.

Étape 3 . Cliquez sur OK-> OK. Thant est tout. Je vous remercie.

0
mohammed nathar

Dans mon cas, les éléments suivants ont aidé:

Ajout de la section suivante dans pom

  <plugins>
    <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
    </plugin>
  </plugins>

A couru en utilisant maven3 et ça a marché

0
shabby

Si vous rencontrez le 

erreur: impossible de trouver ou de charger la classe principale dans le projet maven

fais cela a fonctionné pour moi:
Raison de l'erreur: La cause de cette erreur est que le fichier jar ou la dépendance permettant d'exécuter un projet maven n'est pas installé correctement.

Solution pour l'erreur: Allez dans le dossier du projet (par exemple: D:\office\OIA-service-app)
dans la barre d'adresse de la commande de type d'ordinateur cmd et appuyez sur Entrée.
Dans la commande Invite, tapez la commande mvn clean install et assurez-vous que vous disposez de la connexion Internet.

0
Lakshmikanth c k

Je suis nouveau dans les bottes de printemps et j'utilise STS avec Maven Build. J'ai fait toutes les choses mentionnées ci-dessus mais je ne travaillerai pas. J'ai remarqué deux problèmes dans la fenêtre de problèmes de STS. Il y avait un fichier JAR manquant sur le chemin (C:\Users\NomUtilisateur.m2\repository\com\jayway\jsonpath\json-path\2.2.0). J'ai suivi, le chemin n'est pas fortement suggéré mais a fonctionné pour moi.

1) J'ai supprimé le dossier .m2 de l'emplacement du chemin

2) STS redémarré

3) Faites un clic droit sur le dossier du projet -> maven -> mettre à jour le projet -> coché "Forcer la mise à jour des instantanés/des versions" -> Cliquez sur OK.

Maven a mis à jour ses dépendances et le problème est résolu.

0
amol

Je faisais face au même problème. J'ai supprimé le dossier cible et lance maven install, cela a fonctionné.

0
Prasad Revanaki

J'ai aussi eu cette erreur, je n'avais aucun indice. Je pouvais voir la classe et les bocaux dans le dossier Target. Par la suite, j'ai installé Maven 3.5 et transféré mon dépôt local du lecteur C vers un autre lecteur via conf/settings.xml de Maven. Cela a parfaitement fonctionné par la suite. Je pense que le fait d'avoir un repo local dans le lecteur C était le problème principal. Même si repo avait un accès complet. 

0
Vikky

J'avais le même problème, supprimez simplement le dossier .m2 du répertoire local J'espère que cela fonctionnera.

0
Merwais Muafaq

Si votre projet type d'emballage était en guerre, vous ne pourriez pas commencer. J'utilisais le plugin maven Assembly avec cette configuration;

<build>
    <plugins>
        <plugin>
            <artifactId>maven-Assembly-plugin</artifactId>
            <version>3.0.0</version><!--$NO-MVN-MAN-VER$ -->
            <configuration>
                <descriptors>
                    <descriptor>Assembly.xml</descriptor>
                </descriptors>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.ttech.VideoUploaderApplication</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-Assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

et mon emballage était de type guerre, je ne peux pas trouver d’exception de classe principale, car j’ai changé d’emballage pour un bocal qui fonctionnait;

<groupId>com.ttect</groupId>
<artifactId>VideoUploadListener</artifactId>
<version>1.0.0</version>
<packaging>**jar**</packaging>
0
mertaksu