Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
-
Ausnahme im Thread "main" java.lang.NoClassDefFoundErrorin Java -
Ursachen für
Ausnahme im Thread "main" java.lang.NoClassDefFoundErrorin Java -
Lösung für
Ausnahme im Thread "main" java.lang.NoClassDefFoundErrorin 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.NoClassDefFoundErrorgestoß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-classpathverwenden, um die Java-Anwendung zu starten, und denclasspathim Startskript angeben, indem wir eine Liste vonJAR-Dateien bereitstellen, die in denclasspathaufgenommen werden sollen. -
Keine
JAR-Datei imclasspath- Die prägnanteste Beschreibung für dieses Problem ist, dass die.jar-Datei nicht imclasspathenthalten war. Das Problem tritt nicht mehr auf, sobald Sie diesesJARin denclasspathaufnehmen.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 dieseJARimclasspathvorhanden 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
CLASSPATHkonfigurieren, damit wir die Ausnahme beheben können, die in Windows auftritt. Die folgenden Einstellungen müssen konfiguriert werden, damit wir einenCLASSPATHerstellen 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
Projektklicken undEigenschaftengefolgt vonJava-Erstellungspfadauswählen und dann Bibliotheken fürjarsoder Klassen im Ordnerset sourceauswählen. -
Die Ausnahme manifestiert sich auf Servern, wenn die
jar-Datei imclasspathfehlt. 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 zumclasspathdes Servers oder zumclasspathder Anwendung hinzuzufügen. -
Um diese Klasse zu verwenden, müssen wir entweder die Klasse selbst oder die dafür vorgesehene
.jar-Datei in denjavaclasspatheinbinden. 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
