wake-up-neo.net

Das Spring Boot-Programm kann die Hauptklasse nicht finden

Ich habe ein Programm, das als Spring-Boot-App in Eclipse ausgeführt wird. Das Programm lief gut. Dann habe ich folgendes gemacht:

Klicken Sie mit der rechten Maustaste auf Projekt -> Ausführen als -> Maven-Test.

Das war zufällig. Als ich dann versuchte, das Programm erneut als Spring Boot App auszuführen, wurde der folgende Fehler ausgegeben. 

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

Wie kann ich die Bewerbung wieder auf meine Hauptklasse verweisen? Vielen Dank

39

Die Hauptklasse ist in pom.xml konfigurierbar

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

Ich hatte das gleiche Problem. Versuche dies :

Klicken Sie mit der rechten Maustaste auf das Projekt -> Maven -> Projekt aktualisieren

Führen Sie dann das Projekt erneut aus. Ich hoffe es funktioniert auch für Sie.

57
mantri

Schauen Sie unter "Ausführen -> Konfigurationen ausführen ..." in Eclipse nach. Sie sollten den neuen, den Sie aus Versehen erstellt haben, löschen. Der vorhandene sollte noch vorhanden sein. 

Ich vermute, es hat eine neue Laufkonfiguration für den "Run as Maven Test" erstellt, und Sie starten jetzt immer diese.

11
thedoctor

Wenn Sie Spring Boot verwenden und die oben genannten Vorschläge nicht funktionieren, sollten Sie die Eclipse-Problemansicht (verfügbar unter Fenster -> Ansicht anzeigen -> Probleme) anzeigen.

Beispielsweise können Sie denselben Fehler erhalten (Fehler: Hauptklasse groupId . Application konnte nicht gefunden oder geladen werden), wenn eine Ihrer JAR-Dateien beschädigt ist. Eclipse wird sich darüber beschweren, dass er die Applications-Klasse nicht finden kann, auch wenn das schlechte Gefäß die Hauptursache ist. 

In der Problemansicht wird jedoch das fehlerhafte Glas für Sie identifiziert.

Jedenfalls musste ich manuell zu meinem lokalen MVN-Repo (in .m2) gehen und das beschädigte Glas manuell löschen und es aktualisieren (Rechtsklick auf das Projekt im Paket-Explorer), Maven -> Projekt aktualisieren ... -> OK (vorausgesetzt das richtige Projekt ist markiert).

11
Tihamer

Dies ist mir passiert, nachdem ich den Pom aktualisiert habe (einige Abhängigkeiten hinzugefügt).

Der folgende Schritt half mir, diesen Fehler zu vermeiden

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

Verwenden Sie spring-boot: run , um die Spring Boot-Anwendung zu starten:

Voraussetzung: 1. Fügen Sie der Eigenschaft pom.xml die folgende Eigenschaft hinzu

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

2. Bauen Sie Ihr Projekt auf

Dann konfigurieren Sie den Maven-Befehl mit Spring-Boot: Run.

Navigation:

Klicken Sie mit der rechten Maustaste auf Projekt | Ausführen als | Konfiguration ausführen ... | Neue Maven-Konfiguration mit dem Befehl spring-boot: run hinzufügen

4
Techflash

Falls jemand Gradle für den Build verwendet, werden die folgenden Zeilen in der Datei build.gradle hinzugefügt

apply plugin: 'application'

mainClassName = "com.example.demo.DemoApplication"

4
dkb

Ich habe Spring 1.5.3.RELEASE-Version verwendet und pom Abhängigkeiten wie gegeben 

    <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>

Und meine Hauptklasse war 

@SpringBootApplication
public class SpringAppStarter {


    public static void main(String[] args) {

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

}

Aber noch während der Ausführung der Hauptklasse bekam ich: 

Hauptklasse konnte nicht mit meinem Klassennamen gefunden oder geladen werden.

Ich konnte sehen, dass die Klasse im Klassenpfad verfügbar war und ich STS IDE verwendete.

Ich bekam keinen Grund für das Problem, dann versuchte ich manuell durch Maven mit aufzubauen 

mvn clean install

Immer noch ein Problem war da, dann merke ich, dass mein Projekt zwei Bibliotheken hat

  1. Präsenzbibliothek 
  2. Maven-Bibliothek 

Was ich getan habe:
Ich habe einen weiteren MavenRepo-Ordner erstellt und erneut erstellt und mein Projekt aktualisiert. Danach funktionierte es und ich sah, dass Maven Library aus dem Projektklassenpfad gelöscht wurde.

Während der Ausführung wurden mehrere Versionen erstellt, sodass die richtige Klasse zum Ausführen meiner Anwendung nicht gefunden werden konnte. Andere Lösungen, die auf dieser Seite aufgelistet sind, beheben ebenfalls das Problem, wenn Sie jedoch Fehler machen 

  1. Klasse kommentieren 
  2. pom Eintrag 
  3. glasversion etc. 

Ich hoffe, dass dieses Problem gelöst werden kann, wenn jemand dieses Problem bekommt 

2
Kushwaha

das Löschen alter Gläser aus .m2 und das Aktualisieren des Maven-Projekts sollte der erste Schritt sein. In den meisten Fällen wird das Problem behoben. Der Grund für dieses Problem sind meistens beschädigte alte Gläser

2
Sujeet

Fehler: Hauptklasse konnte nicht geladen oder gefunden werden

Projekt: Spring Boot Werkzeug: STS


Schritte auflösen:


  1. Führen Sie das Projekt aus

  1. Siehe unter Probleme, es wird der beschädigte Fehler angezeigt 

  1. Löschen Sie das betreffende Glas (beschädigtes Glas) im Ordner .m2

  1. Projekt aktualisieren 

  1. Führen Sie erfolgreich aus

1
suraj chennoju

Das gleiche Problem ist aufgetreten und konnte durch folgende Schritte behoben werden:

  1. Datei -> Cache ungültig machen und neu starten
  2. Datei -> Neu -> Projekt aus vorhandener Quelle
  3. Wählen Sie die Datei pom.xml (nur das gesamte Projektverzeichnis) aus, um das Projekt zu laden. Das Projekt wird automatisch eingerichtet.
1

Sogar ich hatte das gleiche Problem, aber später stellte ich fest, dass es passiert ist, weil die Maven-Build-Operation in meiner Umgebung nicht richtig lief. Bitte überprüfen Sie es auch in Ihrem Fall.

0
das

Ich weiß, das ist eine ziemlich späte Antwort. Es kann jedoch einigen neuen Lernenden helfen. Das folgende Beispiel gilt nur für Springboot mit NETBEANS . Ich musste die folgenden Schritte ausführen:

Schritt 1 . Folgen Sie der Antwort von @Mariusz.

Schritt 2. Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> RUN . Stellen Sie sicher, dass das Feld Main Class über die richtige Starter-Klasse verfügt.

Schritt 3 . Klicken Sie auf OK-> OK. Das ist alles. Vielen Dank.

0
mohammed nathar

In meinem Fall hat mir folgendes geholfen:

Folgender Abschnitt in Pom hinzugefügt

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

Lief es mit maven3 und es hat funktioniert

0
shabby

Wenn Sie auf die 

fehler: Hauptklasse in Maven-Projekt nicht gefunden oder geladen

das hat für mich funktioniert:
Grund für den Fehler: Der Grund für diesen Fehler ist, dass die JAR-Datei oder die Abhängigkeit zum Ausführen eines Maven-Projekts nicht ordnungsgemäß installiert ist.

Lösung für den Fehler: Gehen Sie zum Projektordner (zB: D:\office\OIA-service-app)
in der Adressleiste des Computertypbefehls cmd und drücken Sie die Eingabetaste.
Stellen Sie im Befehl Eingabeaufforderung den Befehl mvn clean install sicher, dass Sie über eine Internetverbindung verfügen.

0

Ich bin neu in Spring Boot und benutze STS mit Maven Build. Ich habe alle oben genannten Dinge getan, arbeite aber nicht für mich. Ich habe zwei Probleme im Problemfenster von STS festgestellt. Es gab eine fehlende JAR-Datei im Pfad (C:\Users\UserName.m2\repository\com\jayway\jsonpath\json-path\2.2.0). Ich folgte, der Weg wird nicht stark angedeutet, sondern für mich gearbeitet.

1) Ich habe den .m2-Ordner aus dem Pfad gelöscht

2) Neustart des STS

3) Klicken Sie mit der rechten Maustaste auf Projektordner -> maven -> Projekt aktualisieren -> "Aktualisieren von Snapshots/Releases erzwingen" aktiviert -> Klicken Sie auf OK.

Maven hat seine Abhängigkeiten aktualisiert und das Problem ist gelöst.

0
amol

Ich hatte das gleiche Problem. Ich habe den Zielordner gelöscht und maven install installiert, es hat funktioniert.

0
Prasad Revanaki

Ich bekam auch diesen Fehler, hatte keine Ahnung. Ich konnte die Klasse und die Gläser im Zielordner sehen. Später installierte ich Maven 3.5 und wechselte mein lokales Repo von C-Laufwerk zu anderen Laufwerken durch die Datei conf/settings.xml von Maven. Danach hat es perfekt funktioniert. Ich denke, lokales Repo auf Laufwerk C war das Hauptproblem. Obwohl Repo vollen Zugriff hatte. 

0
Vikky

Ich hatte ein ähnliches Problem, als ich meinem Projekt die Abhängigkeit von der Frühlingssicherheit hinzufügte, dann löschte ich meinen Zielordner und verwendete erneut maven update. Es hat für mich funktioniert.

0
Gautam Mishra

Ich hatte das gleiche Problem. Löschen Sie einfach den .m2-Ordner aus Ihrem lokalen Repository.

0
Merwais Muafaq

Wenn Ihr Projektverpackungstyp Krieg war, konnten Sie nicht beginnen. Ich habe Maven Assembly Plugin mit dieser Konfiguration verwendet;

<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>

und meine Verpackung war Krieg, den ich bekam, konnte ich nicht finden.

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