Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
-
Ausnahme im Thread "main" java.lang.NoClassDefFoundError
in Java -
Ursachen für
Ausnahme im Thread "main" java.lang.NoClassDefFoundError
in Java -
Lösung für
Ausnahme im Thread "main" java.lang.NoClassDefFoundError
in Java
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.
-
Ungültiger Eintrag im
classpath
– Beim Ausführen eines Java-Programms mit demjava-jar
-Befehl enthält dieClassPath
-Eigenschaft dermanifest
-Datei nicht die Definition dieser Klasse. Dies ist eine mögliche Folge der Ausnahme. -
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 denclasspath
im Startskript angeben, indem wir eine Liste vonJAR
-Dateien bereitstellen, die in denclasspath
aufgenommen werden sollen. -
Keine
JAR
-Datei imclasspath
- Die prägnanteste Beschreibung für dieses Problem ist, dass die.jar
-Datei nicht imclasspath
enthalten war. Das Problem tritt nicht mehr auf, sobald Sie diesesJAR
in denclasspath
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 dieseJAR
imclasspath
vorhanden ist oder nicht. -
Ü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
-
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 einenCLASSPATH
erstellen können.set CLASSPATH = % CLASSPATH % ; .;
%CLASSPATH%
steht für den bestehendenKlassenpfad
, der hinzugefügt werden soll, und verweist auf das Verzeichnis, in dem das Programm jetzt läuft. -
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 undEigenschaften
gefolgt vonJava-Erstellungspfad
auswählen und dann Bibliotheken fürjars
oder Klassen im Ordnerset source
auswählen. -
Die Ausnahme manifestiert sich auf Servern, wenn die
jar
-Datei imclasspath
fehlt. Um dieses Problem zu beheben, überprüfen Sie den gesamten Stack-Trace, ermitteln Sie den Namen der fehlendenjar
-Datei und bemühen Sie sich, sie entweder zumclasspath
des Servers oder zumclasspath
der Anwendung hinzuzufügen. -
Um diese Klasse zu verwenden, müssen wir entweder die Klasse selbst oder die dafür vorgesehene
.jar
-Datei in denjava
classpath
einbinden. Wir müssen ein.
eingeben. am Anfang des Java-Klassennamens, wenn wir es von der Befehlszeile aus ausführen.
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.
LinkedInVerwandter Artikel - Java Error
- Adresse wird bereits verwendet JVM_Bind-Fehler in Java
- Android Java.Lang.IllegalStateException behoben: Methode der Aktivität konnte nicht ausgeführt werden
- Ausnahme im Hauptthread Java.Lang.ClassNotFoundException in IntelliJ IDEA
- Beheben Sie das Problem, dass Java nicht installiert werden kann. Es gibt Fehler in den folgenden Schaltern
- Beheben Sie den Fehler `Es wurde keine Java Virtual Machine gefunden` in Eclipse