Play Framework Der Typ ... ist bereits definiert
when i try to run my Application it gives me following error:
Compilation error
The file /app/models/setting.java could not be compiled. Error raised is : The type Setting is already defined
- Ich habe nur eine Datei "Setting.java", die ist in den Modellen directory
- die Datei mit der Bezeichnung "Setting.java" und nicht, "setting.java" wie die Fehlermeldung suggeriert
- ich keine play-Module
Ich bin mit spielen auf windows. Ist es möglich, dass Spiel hat Probleme mit windows groß-und Kleinschreibung? So das wäre es erstmal versuchen zu kompilieren models/Setting.java und danach models/setting.java ??
Was sonst könnte der Grund für dieses sonderbare Verhalten?
/EDIT:
Da schrieb ich diese Frage hier habe ich nicht editieren irgendetwas an meinem Spiel-Anwendung, und ich nicht neu starten. Jetzt habe ich gerade aktualisiert die Seite und der gleiche Fehler kommt wieder - aber mit einem anderen Modell!!
The file /app/models/staticsite.java could not be compiled. Error raised is : The type Staticsite is already defined
/EDIT2:
Nach ein paar Seite aktualisiert der browser diese Fehlermeldung erschien:
The file /app/models/setting.java could not be compiled. Error raised is : The public type Setting must be defined in its own file
Heißt die Datei "Setting.java" und die Klasse heißt Einstellung
- kann es sein, dass Sie vergessen haben, die Paket-Deklaration?
- jeder controller ist im Paket Controller und jedes Modell ist im Paket-Modelle...
- Sind Sie von einer IDE? Wenn ja, haben Sie erfrischt Ihre Anwendung Einstellungen mit den entsprechenden Befehl (also spielen eclipsify) ?
- Ich bin nicht ausgeführt wird, von einer IDE -, aber von windows " cmd: run Spielen Prototyp1
- Ich denke, dass @sdespolit wurde gefragt, ob Sie ein "Paket-Modelle;" inside deine Einstellung Klasse, nicht, wenn es in den models Ordner.
- Ja, natürlich. Das ist, was ich sagen wollte. Paket-Deklaration richtig ist, in jeder Klasse.
- welche version des Spiels benutzt du? Gibt es etwas, was Sie auf Ihrem WEG oder CLASSPATH, die möglicherweise dieses Problem verursachen?
- Jemand die Lösung zu diesem? Ich bin mit den gleichen Problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
"Der Typ ist bereits definiert" Ausnahmen ausgelöst werden können, wenn das Problem außerhalb der genannten Klasse. Wenn Ihr Klassennamen übereinstimmt (groß-und Kleinschreibung) und es ist definiert in einer eigenen Datei, der nächste Schritt ist, um herauszufinden, was code hat vor kurzem geändert, dass Bezugnahmen dieser Klasse. Für mich, das Problem war, dass meine Datei", utils.Utils.java", importiert worden waren, in eine andere Datei über "import utils.Utils;", die wirklich verwirrt den compiler, wenn ich die Angabe "utils.Utils.someMethod()" im code. Ich habe die Zeile auf "Utils.someMethod()" und die Ausnahme verschwunden.
Sollte ich wohl haben kommen mit ein besseres Namensschema. :/
Dieser Fehler tritt auf, wenn Sie diese Klasse umbenennen-Datei, die Sie versuchen zu kompilieren. Einfach erneut ausgeführt werden, das Spiel Rahmen der Arbeit, nachdem Sie brechen den Namen der Klasse. Dies wird das Problem beheben.
Hast du
settings.java
und ersetzt es mitSettings.java
? Sowieso, versuchenplay clean
.Wenn das nicht funktioniert, prüfen Sie sehr sorgfältig, dass Sie keine problematischen unsichtbare Zeichen in der Datei.
Ich denke, Sie arbeiten mit Einstellungen.someProperty ohne erklären Sie das Objekt "Einstellungen", und spielen ist denken, es ist eine statische Methode der Klasse "Einstellungen" mit einem Fehler in der Großbuchstabe.
Hatte ich dieses Problem beim Versuch zum auflösen von Konflikten beim Zusammenführen mit git. Ich verpasste eine Veränderung, und war immer diese compiler-Fehler.
Das Problem war, dass ich eine variable vom Typ
ClassName
namensclassName
. Die variable gelöscht worden war aber diese Linie war noch immer versucht, darauf zugreifen. Anstelle von Berichterstattung, dass dieclassName
variable nicht existieren, das Spiel wurde etwas schwarze Magie und endete reporting der name Konflikt vor: "Type ClassName is already defined
". Es war eine Art von Namen, die in Konflikt mit derClassName
Klasse und dieclassName
variable.Dem fix war zu einfach zu verändern, dass die Linie, die Beseitigung der falsche Zugang zu den alten
className
variable. Dann laufenplay clean
und starten Sie Ihren server neu.