Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError

Muhammad Zeeshan 12 Oktober 2023
  1. Ausnahme im Thread "main" java.lang.NoClassDefFoundError in Java
  2. Ursachen für Ausnahme im Thread "main" java.lang.NoClassDefFoundError in Java
  3. Lösung für Ausnahme im Thread "main" java.lang.NoClassDefFoundError in Java
Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError

Im heutigen Beitrag werden wir über java.lang.NoClassDefFoundError sprechen, das im main-Thread von Java aufgetreten ist. Aber bevor wir darauf eingehen, müssen wir verstehen, was der java.lang.NoClassDefFoundError bedeutet.

Ausnahme im Thread "main" java.lang.NoClassDefFoundError in Java

java.lang.NoClassDefFoundError zeigt an, dass der Code Ihrer Anwendung oder eine externe Bibliothek, die Sie verwenden, versucht, die Bibliothek SLF4J zu verwenden, bei der es sich um eine Open-Source-Protokollierungsbibliothek handelt.

Dies ist jedoch nicht möglich, da die erforderliche Bibliothek nicht gefunden werden kann. Aus diesem Grund wird eine Ausnahme namens java.lang.NoClassDefFoundError im Thread main geworfen.

Da das Java-Programm nur in dem Verzeichnis, in dem es sich gerade befindet, nach Klassendateien sucht, müssen Sie es dem classpath hinzufügen, wenn sich Ihre Klassendatei nicht in dem Verzeichnis befindet, in dem es sich gerade befindet.

Die Lösung für dieses Problem besteht darin, dies zu setzen. Im classpath ist nun eine Klassendatei zu finden.

Wenn Ihre Klassendatei in einer jar-Datei enthalten ist, muss die jar-Datei im classpath enthalten sein. Klassenpfad kann ein absoluter und vollständiger Pfad oder ein relativer Pfad sein, der einem Verzeichnis zugeordnet ist.

Classpath ist eine systemweite Umgebungsvariable, die, wenn sie gesetzt ist, das System zu Klassendateien leitet, die sich in bestimmten Ordnern befinden.

Ursachen für Ausnahme im Thread "main" java.lang.NoClassDefFoundError in Java

Im Folgenden sind die typischen Ursachen aufgeführt, die in verschiedenen Java-Programmen Ausnahmen im Haupt-Thread java.lang.NoClassDefFoundError ausgelöst haben. Das Problem, das Sie haben, könnte sehr wohl einer dieser Gründe sein.

  1. Ungültiger Eintrag im classpath – Beim Ausführen eines Java-Programms mit dem java-jar-Befehl enthält die ClassPath-Eigenschaft der manifest-Datei nicht die Definition dieser Klasse. Dies ist eine mögliche Folge der Ausnahme.

  2. Probleme im Zusammenhang mit der Umgebung - Wir sind auf ungewöhnliche Ursachen für java.lang.NoClassDefFoundError gestoßen. Wenn wir in Java arbeiten, erhalten wir immer wieder diese Ausnahme.

    In einem bestimmten Fall änderte eines der Shell-Skripte, die unser Java-Programm starteten, den Wert der Umgebungsvariablen CLASSPATH.

    Dies führte dazu, dass unsere Java-Anwendung nicht richtig startete. Daher sollten wir den Befehl java-classpath verwenden, um die Java-Anwendung zu starten, und den classpath im Startskript angeben, indem wir eine Liste von JAR-Dateien bereitstellen, die in den classpath aufgenommen werden sollen.

  3. Keine JAR-Datei im classpath - Die prägnanteste Beschreibung für dieses Problem ist, dass die .jar-Datei nicht im classpath enthalten war. Das Problem tritt nicht mehr auf, sobald Sie dieses JAR in den classpath aufnehmen.

    Sie können feststellen, zu welcher JAR-Datei eine bestimmte Klasse in Eclipse gehört, indem Sie Tastaturkürzel wie die Suchressource Strg+R verwenden.

    Nachdem Sie festgestellt haben, zu welcher JAR-Datei die Klasse gehört, können Sie prüfen, ob diese JAR im classpath vorhanden ist oder nicht.

  4. Überschreiben von Klassenladern – Es gibt eine Anforderung zum Klassenladen von dem Eltern-Klassenlader, und dann versucht der Kind-Klassenlader, die angeforderte Klasse zu laden.

    Wenn der übergeordnete Klassenlader irgendeine Klasse lädt, dann kann der untergeordnete Klassenlader sie sehen, aber umgekehrt weiß der übergeordnete Klassenlader nicht, was der untergeordnete Klassenlader geladen hat.

Lösung für Ausnahme im Thread "main" java.lang.NoClassDefFoundError in Java

  1. Wir müssen eine Umgebungsvariable CLASSPATH konfigurieren, damit wir die Ausnahme beheben können, die in Windows auftritt. Die folgenden Einstellungen müssen konfiguriert werden, damit wir einen CLASSPATH erstellen können.

    set CLASSPATH = % CLASSPATH % ;
    .;
    

    %CLASSPATH% steht für den bestehenden Klassenpfad, der hinzugefügt werden soll, und verweist auf das Verzeichnis, in dem das Programm jetzt läuft.

  2. Sie müssen den Erstellungspfad für Ihr Projekt festlegen. Es ist möglich, es anzupassen, indem Sie mit der rechten Maustaste auf die Registerkarte Projekt klicken und Eigenschaften gefolgt von Java-Erstellungspfad auswählen und dann Bibliotheken für jars oder Klassen im Ordner set source auswählen.

  3. Die Ausnahme manifestiert sich auf Servern, wenn die jar-Datei im classpath fehlt. Um dieses Problem zu beheben, überprüfen Sie den gesamten Stack-Trace, ermitteln Sie den Namen der fehlenden jar-Datei und bemühen Sie sich, sie entweder zum classpath des Servers oder zum classpath der Anwendung hinzuzufügen.

  4. Um diese Klasse zu verwenden, müssen wir entweder die Klasse selbst oder die dafür vorgesehene .jar-Datei in den java classpath einbinden. Wir müssen ein . eingeben. am Anfang des Java-Klassennamens, wenn wir es von der Befehlszeile aus ausführen.

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Verwandter Artikel - Java Error