Der Editor enthält keinen Haupttyp

91

Ich habe gerade den Scala-Beispielcode auf der Scala-Website durchgesehen, aber beim Versuch, ihn auszuführen, ist ein nerviger Fehler aufgetreten.

Hier ist der Code: http://www.scala-lang.org/node/45 . Beim Ausführen unter Eclipse wurde die Meldung "Editor enthält keinen Haupttyp" angezeigt, die die Ausführung verhindert.

Muss ich irgendetwas tun ... dh diese Datei in mehrere Dateien aufteilen, oder was?

Helen Neely
quelle

Antworten:

37

Ich habe dieses Problem sehr oft mit Eclipse und Scala. Es ist hilfreich, wenn Sie Ihren Arbeitsbereich bereinigen und Ihr Projekt neu erstellen.

Manchmal erkennt Eclipse nicht richtig, welche Dateien neu kompiliert werden müssen :(

Bearbeiten: Der Code läuft in Eclipse einwandfrei

nuriaion
quelle
4
Machte die gleiche Erfahrung. Außerdem schien es mir manchmal erforderlich zu sein, das Projekt zu schließen und zu öffnen.
Fabian Steeg
Vielen Dank an @nuriaion und @Fabian, ja, die Wiedereröffnung des Projekts hat funktioniert. Nochmals vielen Dank für Ihre Tipps.
Helen Neely
3
@Helen In Eclipse => Project => Clean können Sie die Projekte bereinigen, die Neuerstellung wird automatisch ausgeführt ... Sie müssen das Projekt also nicht schließen und erneut öffnen.
Nuriaion
Das Öffnen und Schließen des Scala-Projekts ergab Folgendes: Während des Builds sind Fehler aufgetreten. Fehler beim Instanziieren des Builders 'ch.epfl.lamp.sdt.core.scalabuilder'. Das Plug-In "ch.epfl.lamp.sdt.core" konnte die Klasse "scala.tools.eclipse.Builder" nicht instanziieren. Die Klasse scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder Plug-in "ch.epfl.lamp.sdt.core" konnte die Klasse "scala.tools.eclipse.Builder" nicht instanziieren. Klasse scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder
Ustaman Sangat
87

Stellen Sie in Eclipse sicher, dass Sie Ihren Quellordner in den Projekteigenschaften -> Java-Erstellungspfad -> Quelle hinzufügen. Andernfalls ist die Funktion main () möglicherweise nicht in Ihrem Projekt enthalten.

Milchplus
quelle
Beachten Sie, dass dies auch durch Ziehen und Ablegen der Dateien in "src" in der Ordner-Explorer-Ansicht erreicht werden kann.
Max von Hippel
Dies löste mein Problem aber nach dem Schließen und Öffnen des Projekts.
Sagte
26

Sie müssen sicherstellen, dass sich Ihre .java-Dateien im Ordner .src in Eclipse befinden. Ich hatte genau das gleiche Problem, bis ich es herausgefunden hatte.

ultra99
quelle
25

Eine einfachere Möglichkeit besteht darin, das Projekt zu schließen und erneut zu öffnen.

statisch
quelle
21

Stellen Sie einfach sicher, dass der Ordner, in dem Sie arbeiten, dem erstellten Pfad hinzugefügt wird:

right-clickIhr Ordner -> build Path->Use as source Folder

und es sollte jetzt maindarin finden .

kholofelo Maloma
quelle
6

Ich hatte das gleiche Problem. Ich habe alle möglichen Dinge ausprobiert. Und das habe ich erfahren

  1. Meine .java-Dateien waren nicht verlinkt und
  2. Sie wurden nicht im Ordner 'src' abgelegt.

Dinge, die ich getan habe:

Projekteigenschaften >> Java Build Path >> Quelle

  • Löschte den ursprünglichen 'src'-Ordner, der leer war, mit der Option' Entfernen '
  • Die Quelle, die meine Java-Quelldateien enthielt, wurde mit der Option "Ordner hinzufügen" hinzugefügt

Dies löste den Fehler.

Anand Dhole
quelle
5

Sie können versuchen, die Hauptfunktion über die Umriss-Seitenleiste von Eclipse auszuführen.

Lösung

Fei
quelle
Wenn ich das mache, bekomme ich eine Fehlermeldung : <project root> [in Tut_RMI] does not exit. (Der Projektname ist Tut_RMI) Ist dieser Projektname ungültig?
Casper
5
***

Einfach schließen und wieder öffnen

*** Ihr Projekt in Eclipse. Manchmal gibt es Verbindungsprobleme. Dies löste mein Problem

Mohit Singh
quelle
3

Eine schnelle Lösung:

Schließen Sie zunächst das Paket aus: Klicken Sie mit der rechten Maustaste auf das Quellpaket >> Erstellungspfad >> Ausschließen

Fügen Sie es dann wieder hinzu: Klicken Sie mit der rechten Maustaste auf das Quellpaket >> Pfad erstellen >> Einschließen

rwc
quelle
3

Sie sollten lediglich ein Java-Projekt erstellen. Stellen Sie jedoch sicher, dass Sie diese Datei in die Paketdatei dieses Projekts einfügen. Andernfalls tritt der gleiche Fehler auf.

Geben Sie hier die Bildbeschreibung ein

AbsinthSyringe
quelle
2

Dieser Code ist gültig. Haben Sie versucht, es von Hand mit Scalac zu kompilieren? Haben Sie Ihre Datei auch "Adressbuch" genannt, alles in Kleinbuchstaben, wie der Name des Objekts?

Außerdem habe ich festgestellt, dass Eclipse aus irgendeinem Grund die Hauptklasse auf ".addressbook" anstelle von "addressbook" gesetzt hat.

Daniel C. Sobral
quelle
Danke Daniel, ja, die Datei heißt 'Adressbuch' in Kleinbuchstaben. Ich werde versuchen, das Projekt erneut zu öffnen, um festzustellen, ob dies hilfreich ist.
Helen Neely
2

Sie sollten Ihre Datei von erstellen

Wenn Sie auf der rechten Seite auswählen, finden Sie Ihren Dateinamen.

Darunter finden Sie den Ordner src. Klicken Sie mit der rechten Maustaste auf Auswahl -> Klassenoption

Ihre Ihre Datei sollte erstellt werden

Vijaya
quelle
2

Stellen Sie sicher, dass Ihre Java-Datei entweder im str-Paket oder in einem anderen Paket vorhanden ist. Wenn sich die Java-Datei mit der Hauptfunktion außerhalb aller Pakete befindet, wird dieser Fehler ausgelöst.

Sahil Pruthi
quelle
2

Haben sich dem ähnlichen Problem gestellt, dieses durch Klicken mit der rechten Maustaste auf die Hauptmethode in der Gliederungsansicht behoben und als Java-Anwendung ausgeführt.

Naresh
quelle
1

Ich hatte gerade auch dieses Problem. Die Lösung besteht darin, sicherzustellen, dass Eclipse das Projekt als Java-Projekt erstellt hat. Erstellen Sie einfach ein neues Java-Projekt und kopieren Sie Ihre Klasse in den Ordner src (und importieren Sie die eventuellen Abhängigkeiten). Dies sollte das Problem beheben.

KullDox
quelle
Vielen Dank an KullDox für Ihren Kommentar. Ich habe das Problem schon lange gelöst, hoffe aber, dass jemand anderes die Lösungen hier hilfreich findet.
Helen Neely
1

Die richtige Antwort lautet: Die Scala-Bibliothek muss vor der JRE-Bibliothek im Buildpath stehen.

Gehen Sie zu Java Buildpath> Bestellen und Exportieren und verschieben Sie die Scala-Bibliothek nach oben

MGM
quelle
1

Ich hatte dieses Problem mit einem Java-Projekt, das ich aus dem Dateisystem (unter Eclipse Helios) importiert habe. Hier ist ein Hinweis: Der src-Code schien überhaupt nicht kompiliert zu sein, da kein "bin" -Verzeichnis angezeigt wurde.

Ich musste ein Java-Projekt von Grund auf neu erstellen (mit dem Assistenten) und dann das vergleichen .project Dateien der nicht funktionierenden und funktionierenden Projekte vergleichen.

Das Projekt "Editor enthält keinen Haupttyp" hatte dies als "buildSpec" in der .project-Datei:

<buildSpec>
</buildSpec>

Aber das Arbeitsprojekt hatte dies als "buildSpec":

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

Ich habe dies kopiert und das importierte Projekt hat funktioniert.

Ich weiß, dass meine Antwort für Java ist, aber das gleiche könnte das Problem für Ihr Scala-Projekt sein.

user2704136
quelle
1

Möglicherweise befindet sich die von Ihnen erstellte Datei außerhalb des Ordners src (Quelle). Der Versuch, das Klassenobjekt (aus der Datei im Ordner src) aus der Java-Datei außerhalb des Quellordners aufzurufen, führt zu demselben Fehler. Kopieren Sie die Java-Datei in den Quellordner und erstellen Sie sie. Der Fehler wird verschwunden sein.

Vamsi Tallapudi
quelle
1

Ich hatte das gleiche Problem. Ich hatte die Hauptklasse aus dem src-Paket in einem anderen Ordner. Ich verschiebe es in und korrigiere Ordner und gelöst

jacruz
quelle
1

Führen Sie "eclipse -clean -refresh" über die Befehlszeile aus. Dies hat das Problem für mich behoben, als alle anderen Lösungen fehlschlugen.

MikeG
quelle
1

Dies könnte das Problem mit dem Java Build-Pfad sein. Versuchen Sie die folgenden Schritte:

  1. Gehen Sie zu den Projekteigenschaften
  2. Gehen Sie zu Java Build Path
  3. Gehen Sie zur Registerkarte Quelle und fügen Sie den src-Ordner des Projekts hinzu

Dies sollte das Problem beheben.

AalekhG
quelle
1

Wenn es sich um ein Maven-Projekt handelt, überprüfen Sie bitte, ob die Java-Datei unter src / main / java erstellt wurde

Wenn Sie nicht erhalten, ändern Sie bitte den JRE-Pfad und erstellen Sie die Java-Dateien in der obigen Ordnerstruktur

ssomu
quelle
0

In Eclipse 3.6 tritt dieses Problem für mich auf, wenn meine Hauptmethode nicht öffentlich ist. Ich habe das Problem durch eine Hauptmethode wie diese verursacht:

static void main(String[] args) 

Der Dubugger konnte dies nicht selbst erkennen. Ich bin ziemlich überrascht, dass Eclipse dies übersehen hat.

Djangofan
quelle
0

Im schlimmsten Fall - erstellen Sie das Projekt erneut mit allen Importen von Anfang an. In meinem Fall hat keine der anderen Optionen funktioniert. Diese Art von Fehler weist darauf hin, dass in den Projekteinstellungen ein Fehler vorliegt. Ich habe es einmal geschafft, es zu lösen, aber als weitere Entwicklungen durchgeführt wurden, kam der Fehler zurück. Das Wiederherstellen von allem von Anfang an hat mir geholfen, einige Links zu verstehen und zu optimieren, und jetzt bin ich zuversichtlich, dass es richtig funktioniert.

Sergiu
quelle
0

Befolgen Sie die folgenden Schritte:

  1. Sichern Sie alle Ihre .java-Dateien an einem anderen Speicherort
  2. Löschen Sie das gesamte Java-Projekt
  3. Erstellen Sie ein neues Java-Projekt, indem Sie mit der rechten Maustaste auf root klicken und auf neu klicken
  4. Stellen Sie alle Dateien an einem neuen Speicherort wieder her !!
Mani Kandan
quelle
0

Datei >> Importieren >> Vorhandene Projekte in den Arbeitsbereich >> Archiv archivieren >> Datei suchen und suchen >> Fertig stellen. Wenn es bereits auf eine andere Weise importiert wurde, löschen Sie es und versuchen Sie es auf diese Weise. Ich hatte das gleiche Problem, bis ich das versuchte.

Mike
quelle
0

Noch etwas zu überprüfen: Stellen Sie sicher, dass Ihre Quelldatei die richtige Paketdeklaration enthält, die dem Unterverzeichnis entspricht, in dem sie sich befindet. Der vom OP erwähnte Fehler wird angezeigt, wenn Sie versuchen, einen "Haupttyp" auszuführen, der in einer Datei in einem Unterverzeichnis deklariert ist Fehlen der Paketanweisung.

Daniel Ashton
quelle
0

Ich habe dieses Problem auch, nachdem ich den Quellordner geändert habe. Die Lösung, für die es funktioniert hat, besteht darin, die Datei zu bearbeiten und zu speichern.

Hunsu
quelle
0

Versuchen Sie 'Projekt aktualisieren'. Sobald ich dies getan habe, wurde die Option Als Java-Anwendung ausführen angezeigt.

George Santhosh
quelle
0

In meinem speziellen Fall "Hallo Welt" war die Ursache für dieses Problem die Tatsache, dass sich meine main()Methode innerhalb der Scala befandclass .

Ich habe die main()Methode unter die Scala gestellt objectund der Fehler ist verschwunden.

Dies liegt daran, dass Scala objectin Java die Entität ist, in der sich nur statische Elemente und Methoden befinden.

Deshalb muss Java public static void main()in Scala unter platziert werden object.

(Scala classdarf keine statischen Aufladungen enthalten)

Vlad.Bachurin
quelle