Frage

Ich habe Eclipse-Installation 3.5.2 und die heutige Scala-Plugin von / update-Strom (das Scala 2.8 final.) Ich kompilieren und Scala-Projekte laufen, bestehend aus einem einzigen Singleton-Objekt, dass Geräte main ().

Aber, wenn ein Projekt mehr Klassen enthält, erhalte ich die Fehlermeldung „kann nicht die Hauptklasse finden“.

Ich habe für die Lösung versucht, die Suche und entdeckte ich:

Eclipse richtig suchen die Haupt $ Klasse, nicht die Hauptklasse
* Im Debug-Konfigurationen, ist meine Hauptklasse korrekt identifiziert als mypackage.Main
* Mein Plugin ist auf dem Laufenden und für meine Version von Eclipse empfohlen
* Reinigung etc. Neustart hilft nicht.

Das gleiche Projekt mit scalac kompilieren.

Vielen Dank für alle Ideen, wie diese zu lösen.

EDIT: MatthieuF schlug ich sollte nach dem Code.

Dieser Code-Schnipsel erzeugt einen Fehler. Es ist nicht der idiomatische Code, aber ich schrieb es auf diese Weise meine Umgebung zu testen. Ich habe versucht, es als eine einzige Datei und als separate Dateien. Es funktioniert mit scalac.

import swing._

class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
}

object Hello {
  val frame = new HelloFrame    
  def main(args : Array[String]) : Unit = {
        frame.visible = true
   }
}

Aber, wenn ich nisten die Definition von Helloframe innerhalb Hallo, es funktioniert. Dieser Code-Schnipsel läuft perfekt:

import swing._

object Hello {

    class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
    }

    val frame = new HelloFrame

    def main(args : Array[String]) : Unit = {
        frame.visible = true
    }
}
War es hilfreich?

Lösung

Für mich war das Problem, dass es ein Build-Fehler war (siehe Probleme Tab), die war verhindert Kompilation; Hoppla! Der Grund, warum Sie den Fehler sehen ist, dass der Lauf Makro schreitet trotz der Kompilierung Schritt fehlgeschlagen ist, und versucht, Klassendateien führen Sie es, dort zu sein erwartet; sie existieren nicht, weil es ein Build-Fehler war Kompilation zu verhindern, so sagt sie es nicht Haupt finden (nicht kompiliert).

Problem geht weg, wenn Build erfolgreich abgeschlossen werden kann, das heißt Fehler behoben werden.

Ich denke, theoretisch kann es mehr kompliziert Gründe werden Build Abschluss nicht erfolgreich, die nicht in Probleme aufgelistet sind.

Andere Tipps

Eine Möglichkeit ist, dass Sie versuchen, ctrl-F11 starten verwenden, aber aus einer anderen Klasse.

Die Scala Eclipse-Plugin nicht gehorcht, die Standardeinstellungen für Java Start. In Einstellungen-> Run / Debug-> starten, gibt es einige Optionen Starten Betrieb-> Immer Starten Sie die zuvor ausgewählte Anwendung usw. Diese zur Zeit nicht funktioniert in der Scala Eclipse-Plugin. So starten Sie eine festgelegte Haupt, müssen Sie es aus dem Editor für die Klasse starten.

Es hat für das ein Fehler ausgelöst. http: //scala-ide.assembla.com/spaces/scala-ide/tickets/1000023-scala-launch--does-not-follow-jdt-behaviour

EDIT:. Das ist jetzt (meistens) festgelegt

Für mich war es Eclipse-spezifisches Problem. Ich bemerkte, dass .class Datei überhaupt nicht gebaut wurde. So bin Verzeichnis nicht kompilierten Klassen haben. Wenn ich manuell zusammengestellt * .scala Datei * .sbt verwenden und es zu bin Verzeichnis kopiert es funktionierte wie erwartet. Ich habe versucht, verschiedene Tipps und Tricks, und es wurde nicht gearbeitet, bis ich neu installiert Scala-Plugin in Eclipse .

Ich würde lösen ähnliches Problem durch executig "Project-> Sauber .." mit nächsten automatisch zu bauen.

hatte ich die gleiche Fehlermeldung mit einer Java-Anwendung, die von mir gemacht.

Das Problem war, dass ich gelöscht (wenn auch in Eclipse) ein Glas, die mit dem Java Build-Pfad gehörten , ohne es aus dem Java-Build-Pfad (Projekteigenschaften-Fenster) zu löschen. Als ich es die Klasse tat konnte erneut kompilieren und ausführen.

Stellen Sie sicher, dass die .class Dateien vorhanden sind, in der Regel unter dem bin Verzeichnis.

Insbesondere dann, wenn Sie Fehler in keinem Zusammenhang Dateien im selben Projekt haben, dann kann die Kompilierung fehl, und keine .class Dateien erzeugt werden.

Es kann der Fall von Projekten sein, die Fehler enthalten, hinzugefügt, um den Build-Pfad der Anwendung, die den Abschluss der erfolgreichen Übersetzung verhindert. Stellen Sie sicher, entfernen Sie ein derartiges Projekt aus dem Build-Pfad vor der Anwendung ausgeführt wird.

diese Projekte aus- löste das Problem für mich.

Haben Sie einen richtigen Build-Tool-Setup? Wie sbt installiert haben Sie es?

Sie können prüfen, seine Version von $ sbt --Version

Wenn es nicht Setup ist, dass Sie hier herunterladen können http: //www.scala-sbt. org / download.html

Sie können Ihre Eclipse nach der Installation neu zu starten.

Kopieren Sie einfach Ihre XXX.scala Datei Code. Entfernen Sie das Paket und erstellen Sie eine neue Scala-Klasse. Fügen Sie Ihre XXX.scala Code. (Wenn Sie Maven verwenden, tun Maven sauber und zu bauen.) Run-Konfiguration wieder. Dies funktioniert für mich.

Ich habe dieses Problem konfrontiert. Ich habe gelöscht nur die Paketnamen, erstellt scala Klasse, Written den gleichen Code, Set Erstellen auf „Automatisch erstellen“. Schließlich Es funktioniert völlig in Ordnung.

Überprüfen scala-ide.log

Für mich war das Problem, dass es Fehler auf:

AppData \ Local \ Temp \ sbt_10d322fb \ XSBT \ ClassName.scala: 16: Fehler: nicht gefunden: Wert enteringPhase enteringPhase (currentRun.flattenPhase.next) {s fullname Separator}

Wenn Sie mit IntelliJ, Zeichen Verzeichnis als Quelle root

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top