it-swarm.com.de

java.lang.RuntimeException: Nicht kompilierbarer Quellcode - was kann das bewirken?

Dieser Fehler ist nur bizarr, mein Code kompiliert gut, ich sehe, dass es keine Probleme gibt, aber dieser Fehler ist gerade aufgetaucht. Ich habe versucht, NetBeans neu zu starten, und es werden keine zusätzlichen Ausnahmeinformationen angezeigt.

Was kann das bewirken?

48
MalcomTucker

Ich denke, Sie verwenden ein IDE (wie Netbeans), mit dem Sie den Code ausführen können, auch wenn bestimmte Klassen nicht kompilierbar sind. Wenn Sie während der Laufzeit der Anwendung auf diese Klasse zugreifen, führt dies zu dieser Ausnahme.

32
Chandra Sekar S

Wenn es sich um Netbeans handelt, deaktivieren Sie die Einstellung "Beim Speichern kompilieren" in den Projekteigenschaften (Erstellen -> Übersetzen). Dies ist das einzige, was mir in einer ähnlichen Situation geholfen hat.

Quelle: http://forums.netbeans.org/post-45324.html

67
Dime

Dies liegt daran, dass NetBeans einen Teil des alten Quell- und/oder kompilierten Codes in seinem Cache speichert und nicht bemerkt, dass z. Einige der Abhängigkeiten des Codes (d. h. referenzierte Pakete) haben sich geändert, und eine ordnungsgemäße Aktualisierung/Neukompilierung der Datei wäre in der richtigen Reihenfolge.

Die Lösung besteht darin, diese Aktualisierung durch Folgendes zu erzwingen:

a) Lokalisieren und Bearbeiten der fehlerhaften Quelldatei, um deren Neukompilierung zu erzwingen (z. B. Hinzufügen einer Dummy-Zeile, Speichern, Entfernen, Erneutes Speichern),
b) einen sauberen Build durchführen (funktioniert manchmal, manchmal nicht),
c) Deaktivieren von "Kompilieren beim Speichern" (nicht empfehlenswert, da mit IDE eine königliche PITA möglich wird) oder
d) Entfernen Sie einfach den NetBeans-Cache von Hand, um die Neukompilierung zu erzwingen.

So entfernen Sie den Cache:

Wenn Sie eine alte Version von NetBeans verwenden:

  • löschen Sie alles, was mit Ihrem Projekt zusammenhängt, in .netbeans/6.9/var/cache/index/ (ersetzen Sie 6.9 durch Ihre Version).

Wenn Sie eine neuere Version verwenden:

  • löschen Sie alles, was mit Ihrem Projekt zusammenhängt, in AppData/Local/NetBeans/Cache/8.1/index/ (ersetzen Sie 8.1 durch Ihre Version).

Die Pfade können etwas variieren, z. auf verschiedenen Plattformen, aber die Idee ist immer noch die gleiche.

23
kommradHomer

Ich habe auch den gleichen Fehler und ich habe sauber gebaut und es hat funktioniert.

5
UVM

Fügen Sie Selenium-server-standalone-3.4.0.jar hinzu. Es funktioniert für mich. Download-Link

1

Überprüfen Sie die Paketerklärungen in allen Ihren Klassen!

Dieses Verhalten wurde in NetBeans beobachtet, wenn die Paketdeklaration in einer der Klassen des Pakets auf ein nicht vorhandenes oder falsches Paket verweist. NetBeans erkennt diesen Fehler normalerweise und hebt diesen hervor. Es ist jedoch bekannt, dass er fehlschlägt und das Paket irreführend als fehlerfrei meldet, wenn dies nicht der Fall ist.

0
IqbalHamid

Das Implementieren meiner eigenen Funktionsschnittstellen hat das für mich gelöst (anstatt Java.util.function zu verwenden. * Erstellen Sie einfach Ihre eigene Einzelmethodenschnittstelle mit den gewünschten Parametern und dem gewünschten Rückgabetyp).

0
Nathan Crause

Deaktivieren Sie "Bereitstellen beim Speichern" im Bildschirm "Eigenschaften/Ausführen" des Projekts. Das hat letztendlich für mich funktioniert. Warum verdammt noch mal NetBeans das vermasselt, liegt mir nicht.

Hinweis: Ich konnte die Datei kompilieren, die über den Rechtsklick in NetBeans beanstandet wurde. Anscheinend wurde es nicht wirklich kompiliert, als ich Build & Compile verwendete, da es überhaupt keine Fehler gab. Danach wurden die Fehler jedoch in eine andere Java-Klassendatei verschoben. Ich konnte damals nicht kompilieren, da es ausgegraut war. Ich habe auch versucht, die Build- und Dist-Verzeichnisse in meinen NetBeans-Projektdateien zu löschen, was aber auch nicht geholfen hat.

0
mikato

Organisieren Sie Ihren Code als Maven-Modul . Führen Sie anschließend den Befehl vom Terminal aus aus
$mvn installl
um zu überprüfen, ob Ihr Code fehlerfrei ist.
Importieren Sie schließlich das Projekt in netbeans oder Eclipse als Mavenprojekt.

0
Enrico Giurin

Ändern Sie das Paket der Klassen, Ihre Dateien befinden sich wahrscheinlich im falschen Paket. Es ist mir passiert, als ich den Code von einem Freund kopierte. Es war das Standardpaket und meines war ein anderes. Daher konnten die Netbeans deswegen nicht kompilieren.

0
Kleyton

Ich hatte das gleiche Problem mit einem meiner Netbeans-Projekte.

Prüfen Sie, ob Sie den Paketnamen für alle Klassen korrekt eingegeben haben. Ich habe dieselbe Fehlermeldung erhalten, weil ich vergessen habe, den Paketnamen einer bestimmten Klasse anzugeben (die aus einem anderen Projekt kopiert wurde).

0
chandima

Ich hatte das gleiche Problem. Mein Fehler war die Verpackung. Ich würde also vorschlagen, dass Sie zuerst den Paketnamen überprüfen und ob die Klasse im richtigen Paket enthalten ist.

0
Meluleki Dube

Ich hatte dieses Problem mit NetBeans 8.0.1. Meldungen zum Problem in der Klasse "Projekt gelöscht". Das Löschen der ~/.netbeans funktionierte nicht. Ich habe in ALLEN meinen Projekten nach JEDEM Verweis auf die gelöschte Klasse gesucht, nichts gefunden. Ich habe die Build-Klassen gelöscht, alles. Als ich dann Netbeans erneut startete, kompilieren Sie die Nachricht in Run und in der von Mutter kompilierten Klasse. Ich habe versucht, die Dime-Lösung "Kompilieren beim Speichern" zu deaktivieren, und funktioniert, aber es ist nicht praktikabel . Schließlich bestand meine Lösung darin, die Mutter-Klasse zu bearbeiten und neu zu compilieren. Auf diese Weise enthält die neue .class die Nachricht nicht und Run funktioniert OK.

0
Rogelio

Überprüfen Sie einfach die Verpackung. Die einfachste Antwort, die ich geben kann, ist, dass Ihr Paket (innerhalb einer Klasse) falsch etikettiert wurde.

Möglicherweise haben Sie auch einige merkwürdige Zeichen. Versuchen Sie, den Code in einem Editor (oder Gedit) zu löschen und dann in eine neu erstellte Klasse mit Ihrer IDE einzufügen.

0
Damir Olejar

Wenn Sie Netbeans verwenden, klicken Sie auf die Schaltfläche Clean and Build, lassen Sie das erledigen und versuchen Sie es erneut. Arbeitete für mich!

0
user2822399