2010-04-19 4 views
7

Ich benutze Eclipse seit 2.x und IDEs im Allgemeinen seit über 20 Jahren (seit Turbo Pascal und Turbo C in den späten 80er Jahren!).Stuck bei "Hello World" mit IntelliJ IDEA 9.0.1 für Scala

(ist das Präambel bedeuten soll: „Ich bin kein Idiot“ ... aber klingt nicht so klug, wie ich es gelesen ... LOL: -])

Jetzt bin ich versuchen, den Scala-Debugger in IntelliJ 9.0.1 zu verwenden. Ich habe mich abgefunden zu einem alten Stand-by, der „Hallo Welt“ Trick zu überprüfen, ob die Umgebung richtig eingerichtet ist:

 
class hello { 
    def main(a: Array[String]) = println("got args: " + a) 
} 

Ich habe auch versucht, diese Version, nur für den Fall:

 
object hello extends Application { 
    println("hi") 
} 

Alas Ich kann nicht einmal dieses einfache Scala-Beispiel ausführen. Ich würde gerne einen Breakpoint einbauen, aber im Moment würde es einfach großartig sein. Ich habe Java 1.6u20 und das Scala Plug-In 0.3.473 (Januar 2010). Der Fehler unten fasst meine Erfahrung:

alt text http://img535.imageshack.us/img535/842/ij9.jpg

Was vielleicht könnte ich falsch gemacht?

Danke

+0

Okay, habe es. .. das Entfernen des '=' von def main im ersten Beispiel behebt es! Ich denke, die Typ-Signatur von main() spielt immer noch eine Rolle. Das zweite Beispiel sollte funktionieren, tut es aber nicht. Irgendwelche Ideen ??? (Mein aktuelles Problem ist gelöst, aber jetzt bin ich neugierig!) Danke –

+0

Ich empfehle 9.0.2 EA mit dem neuesten Scala Plug-in. JetBrains EA-Releases (speziell für Point-Releases) sind fast immer Release-nahe Qualität. Und während die Scala-Plug-In-Leute in der Release-Notes-Abteilung leider zu kurz kommen, hat sich das Plug-in in den letzten Monaten stetig verbessert und es lohnt sich, mit den neuesten Updates Schritt zu halten. –

+0

Eine Randnotiz: Es gibt Probleme mit Application Trait und es ist jetzt veraltet. Benutze stattdessen App. – elbowich

Antwort

5

Von Ihrem Screenshot sieht es aus wie Sie verwendet haben:

class hello { 
    def main(a: Array[String]) = println("got args: " + a) 
} 

Die Hauptmethode muss auf einem Objekt sein, um eine Hauptmethode zu unterstützen.

Die Groß-/Kleinschreibung des Objekt-/Klassennamens ist die Konvention, wird jedoch nicht erzwungen.

+0

Dies war die nächste Antwort ...Der Wechsel zum Objekt und das Entfernen des "=" behebt das unmittelbare Problem (ich kann jetzt über diesen Konfigurationsdialog hinwegkommen, obwohl das Programm nicht ausgeführt werden kann). Vielleicht möchten Sie Ihre Antwort entsprechend bearbeiten. Danke –

+0

Ich habe gerade ein Testprojekt versucht, wie oben, und hatte sehr ähnliche Probleme. Ich habe 50+ kleine Scala-Projekte erstellt, mit dem einzigen Problem, dass ich die Standardeinstellungen für Compiler und Bibliotheks-Jars (vom Plugin) in die der Scala-Distro der Wahl ändere. Allerdings sehe ich das gleiche Problem beim Erstellen einer Run-Config, kann ich kompilieren, aber die Run-Config-Dialog findet das Hello-Objekt nicht, die Problemumgehung ist nicht die Auswahl zu verwenden und geben Sie "Hallo" in der Main-Klasse Feld. Es gibt immer noch eine Warnung über "Main-Methode nicht in der Klasse Hallo gefunden" aber die Run-Konfiguration wird funktionieren. Kontakt Support, sie sind sehr entgegenkommend. –

1

Es kann ein Fehler im Plugin sein. Wenn Sie Ihr Objekt als Hello (groß geschrieben) definieren, funktioniert es zumindest auf meinem Rechner.

+1

Ich habe das versucht, aber es löst das Problem nicht. –

1

Ist Ihre Datei hello.scala? (Ich kann nicht sehen, dass es die .scala Erweiterung in Ihrem Screenshot hat) - es muss eine .scala Datei sein, da sonst der Compiler nicht in der Lage sein, es zu kompilieren

+1

IntelliJ blendet die Erweiterung aus. Windows Explorer zeigt .scala –