JUNIT-Testklasse in Eclipse – java.lang.ClassNotFoundException
Lesezeit: 6 Minuten
Mouna Cheikhna
Ich versuche, meinen Junit-Test auszuführen (um zu überprüfen, ob eine Eigenschaftendatei korrekt geladen wird), aber ich bekomme ClassNotFoundException obwohl die Klasse da ist und alle erforderlichen Bibliotheken auch da sind.
Hier ist der Fehler, den ich bekomme:
Class not found ConfigurationManagerTest java.lang.ClassNotFoundException: ConfigurationManagerTest
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
irgendwelche Ideen, wie man das beheben kann?
Vielen Dank.
Versuchen Sie, Ihr Projekt zu bereinigen und zu erstellen.
– Harry Freude
19. April 2011 um 12:27 Uhr
habe es mehrmals versucht, ich bekomme immer den gleichen Fehler
– Mouna Cheikhna
19. April 2011 um 12:39 Uhr
Öffnen Sie das Run Configuration-Fenster in Eclipse, wählen Sie den Unit-Test aus, den Sie ausgeführt haben, und gehen Sie zur Registerkarte Classpath: Hier können Sie überprüfen, was tatsächlich im Classpath enthalten ist.
– Stijn Geukens
19. April 2011 um 12:43 Uhr
danke, ich habe oben im classpath-Tab einen Fehler gesehen: [JRE]: JRE nicht kompatibel mit Workspace .class-Dateikompatibilität: 1.6 , vielleicht ist dies die Ursache ?
– Mouna Cheikhna
19. April 2011 um 12:53 Uhr
Ich hatte das gleiche Problem mit einer eigenständigen Java-Klasse und einem JUnit-Test unter Verwendung von Eclipse 4.2. Ich habe alle Pfade usw. überprüft. Ich habe versucht, “Ihr Projekt zu bereinigen und zu erstellen”. Es funktionierte! Danke HarryJoy.
– RuntimeException
18. September 2012 um 11:29 Uhr
ConfigurationManagerTest wird in Ihrem Klassenpfad nicht gefunden. Stellen Sie sicher, dass die ConfigurationManagerTest.class Datei ist auf Ihrem Klassenpfad verfügbar.
Es ist möglicherweise nicht vorhanden, wenn es nicht erfolgreich kompiliert wurde oder wenn es in einem Verzeichnis erstellt wird, von dem Sie dem Eclipse-Projekt nicht mitgeteilt haben, dass es sich im Klassenpfad befinden soll.
Angenommen, Sie haben Ihre Testklassen in einem separaten Ordner abgelegt, stellen Sie sicher, dass sie in der Ansicht „Paket-Explorer“ (und nicht in der Ansicht „Navigator“) angezeigt werden.
Unter den Projekteigenschaften, „Java Build Path“ und dem Reiter „Source“ können Sie außerdem sehen, ob der Quellordner zum Bauen eingebunden ist und wo die .class-Dateien generiert werden.
Weitere Informationen zu fehlenden Klassendateien hinzufügen: Überprüfen Sie, ob Sie Klassendateien im Verzeichnis \build\classes\ sehen. Wenn Sie keine sehen, überprüfen Sie den Problembereich von Eclipse auf Fehler beim Erstellen Ihres Testprojekts. Reparieren Sie diese und es wird gebaut. Wenn alles andere fehlschlägt, müssen Sie möglicherweise auf Project->clean zurückgreifen und dann neu erstellen. Und wenn Sie wirklich verzweifelt sind, starten Sie Eclipse neu (eine Totale).
– Gili Nachum
15. Dezember 2011 um 15:31 Uhr
Ich habe im Setup meines Eclipse-Projekts festgestellt, dass nicht alle Build-Klassen in das Standard-Build-Verzeichnis des Projekts gingen, sodass meine Tests nicht einmal auf die Build-Artefakte zugreifen konnten.
– Bakoyaro
8. November 2013 um 17:22 Uhr
Ja, mein Maven-Projekt hat .class-Dateien in /bin erstellt. musste dieses Verzeichnis unter Benutzereinträgen in der Registerkarte runconfig / classpath über die Option advanced/add folder hinzufügen.
– derRiley
1. Februar 2017 um 17:22 Uhr
Das funktionierte für mich wie ein Zauber!! Ich habe viele (zukünftige) Projekte in meinem Arbeitsbereich, die Probleme beim Kompilieren haben. Durch das Hinzufügen der Testklasse zum Klassenpfad wurde der von mir benötigte Test ausgeführt.
– Nash N
28. März 2020 um 13:57 Uhr
Gangnus
Es gibt noch eine weitere Möglichkeit. Ich hatte gerade das gleiche Problem und keine der Lösungen hier hat geholfen. Außer dem Entfernen und Neuerstellen des Projekts – ich wollte es nicht versuchen. Was geholfen hat, war zu sauber das Projekt zweimal sofort nacheinander! Clean + Build könnte beliebig oft wiederholt werden – es hilft nichts. Nur clean+clean und danach geht der Build OK. (Finsternis 3.6). Natürlich sollten Sie dafür Autobuild deaktivieren.
Edit: Dieser Beitrag hat am 15.11.2017 sein letztes Plus bekommen. Das Problem (und die Lösung) bleibt also aktuell.
Danke, das hat geholfen, aber ich musste den automatischen Build deaktivieren. Außerdem musste ich andere fehlende Bibliotheken lösen, die nichts mit jUnit zu tun haben.
– Hohenheimsenberg
22. Dezember 2013 um 22:21 Uhr
Hat überhaupt nicht geholfen (Eclipse 4.5)
– Christian Vielma
2. Februar 2016 um 10:09 Uhr
@ChristianVielma Ich hoffe es. Während der Entwicklung von 9 Versionen sollten sie den Fehler entfernen!
– Gangnus
4. Februar 2016 um 18:41 Uhr
zweimal! das ist Eclipse.
– alexpfx
13. April 2016 um 11:47 Uhr
@Alessandro die Magie ist, dass sie den gleichen Fehler bereits seit 4 Jahren haben. Ich messe die Lebensdauer des Fehlers, indem ich Upvotes zähle 🙂
– Gangnus
5. Oktober 2017 um 11:09 Uhr
Ein weiteres mögliches Problem ist ein fehlender Builder (der verhindert, dass Ihre .class-Datei erstellt wird).
Überprüfen Sie, ob Ihre .project-Datei die folgenden Zeilen enthält
Das war mein Problem – ich habe vergessen, dass mein Projekt AspectJ-fähig war und auch der AJDT-Builder, den ich nicht installiert hatte. Es ist ärgerlich, dass Eclipse sich in diesen Fällen stillschweigend weigert, das Projekt zu bauen.
– Nik
18. Januar 2013 um 16:08 Uhr
Das hat mein Problem behoben. Danke Alter .. 🙂
– Prasobh. Kollattu
27. März 2014 um 7:15 Uhr
Robert
Das ist mir passiert, als ich Testklassen per Drag & Drop in verschiedene Pakete gezogen habe. Ich habe gerade folgendes gemacht
Klasse in einem Texteditor gespeichert.
Die betreffende Klasse wurde aus dem Eclipse-Projekt-Explorer gelöscht.
Klasse neu erstellt.
Bingo! Ich kann jetzt den Test durchführen!
Ich hatte dieses Problem und es war irgendwie schwierig zu erkennen, was falsch war. Das Projekt hatte ein Abhängigkeitsprojekt mit einem Fehler, der die Ausführung des Builds verhinderte. Wenn ich dieses Abhängigkeitsproblem entferne, wurde das Projekt wie erwartet erstellt.
Ps.: Ich arbeite an einem Projekt, das viele Kompilierungsfehler hat, weil wir eine Anwendung portieren, die von Delphi nach Java konvertiert wurde, daher habe ich mich am Anfang nicht um den Kompilierungsfehler gekümmert, deshalb hat es einige Zeit gedauert um das Problem herauszufinden.
vamsi-vegi
Überprüfen Sie Eigenschaften -> Java-Erstellungspfad -> Bibliotheken. Es sollten keine Fehler auftreten, in meinem Fall gab es Fehler im Maven. Nachdem ich das erforderliche Glas in das Maven-Repo gestellt hatte, funktionierte es einwandfrei
Ich habe alle hier beschriebenen Antworten ausprobiert, aber keine hat funktioniert, aber ich habe diesen Thread gefunden, in dem slomek das Problem auf sehr einfache Weise löst. Gehen Sie einfach zu Projekt -> Eigenschaften -> Java-Erstellungspfad. Bewegen Sie dann Junit nach oben, indem Sie oben rechts unten drücken. Dann kompiliert alles einwandfrei.
10385600cookie-checkJUNIT-Testklasse in Eclipse – java.lang.ClassNotFoundExceptionyes
Versuchen Sie, Ihr Projekt zu bereinigen und zu erstellen.
– Harry Freude
19. April 2011 um 12:27 Uhr
habe es mehrmals versucht, ich bekomme immer den gleichen Fehler
– Mouna Cheikhna
19. April 2011 um 12:39 Uhr
Öffnen Sie das Run Configuration-Fenster in Eclipse, wählen Sie den Unit-Test aus, den Sie ausgeführt haben, und gehen Sie zur Registerkarte Classpath: Hier können Sie überprüfen, was tatsächlich im Classpath enthalten ist.
– Stijn Geukens
19. April 2011 um 12:43 Uhr
danke, ich habe oben im classpath-Tab einen Fehler gesehen: [JRE]: JRE nicht kompatibel mit Workspace .class-Dateikompatibilität: 1.6 , vielleicht ist dies die Ursache ?
– Mouna Cheikhna
19. April 2011 um 12:53 Uhr
Ich hatte das gleiche Problem mit einer eigenständigen Java-Klasse und einem JUnit-Test unter Verwendung von Eclipse 4.2. Ich habe alle Pfade usw. überprüft. Ich habe versucht, “Ihr Projekt zu bereinigen und zu erstellen”. Es funktionierte! Danke HarryJoy.
– RuntimeException
18. September 2012 um 11:29 Uhr