it-swarm.com.de

So verwenden Sie Scala in IntelliJ IDEA (oder: Warum ist es so schwierig, eine Arbeit zu bekommen? IDE für Scala)?

Ich habe vor kurzem aufgehört, Scala in Eclipse zu verwenden (grundlegendes Material wie Fertigstellung funktioniert nicht). Also versuche ich es jetzt mit IntelliJ. Ich komme nicht sehr weit.

Ich konnte Programme bearbeiten (innerhalb der Syntax-Hervorhebung und -Vollständigung ... yay!). Aber ich kann nicht einmal die einfachste "Hallo Welt" laufen. Dies war der ursprüngliche Fehler:

 Scala-Signatur Predef hat falsche Version 
 Erwartetes 5.0 
 Gefunden: 4.1 in .... scala-library.jar 

Das war gestern mit IDEA 9.0.1. Siehe unten...

UPDATE

Heute habe ich IntelliJ 9.0.1 deinstalliert und 9.0.2 Early Availability mit der stabilen Version 4/14 des Scala-Plug-Ins installiert.

Dann erstelle ich ein Projekt von Grund auf durch die Assistenten:

  • neues Projekt von Grund auf
  • JDK ist 1.6.u20
  • akzeptieren Sie den Standard (Projekt) anstelle von global/module
  • akzeptieren Sie den Download von Scala 2.8.0beta1 in den lib-Ordner des Projekts

Eine neue Klasse erstellt:

 Objekt Hallo {
 def main (args: Array [String]) {
 println ("hallo:" + args); 
 } 
} 

Für meine Bemühungen habe ich jetzt einen brandneuen Fehler :)

Hier ist es:

Interner Scalac-Fehler: Klasse Java.lang.ClassNotFoundException [Java.net.URLClassLoader $ 1.run (URLClassLoader.Java:202), Java.security.AccessController.doPrivileged (native Methode), Java.net.URLClassLoader.Java : 190), Java.lang.ClassLoader.loadClass (ClassLoader.Java:307), Sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.Java:301), Java.lang.ClassLoader.loadClass (ClassLoader.Java:248) , Java.lang.Class.forName0 (native Methode), Java.lang.Class.forName (Class.Java:169), org.jetbrains.plugins.scala.compiler.rt.ScalacRunner.main (ScalacRunner.Java:72) ]

LETZTE ÄNDERUNG

Ich habe 9.0.2 EA deinstalliert und 9.0.1 neu installiert. Diesmal ging es jedoch mit der Version 2.7.3 von Scala statt mit der Standardeinstellung von 2.7.6, da 2.7.3 in den Screenshots auf der IntelliJ-Website angezeigt wird ( Ich vermute, die Screenshots beweisen, dass sie diese Version tatsächlich getestet haben!). Jetzt funktioniert alles !!!

48
Alex R

Beim Versuch, ein Scala-Projekt in Intellij Idea 9.0.2 auszuführen, ist der gleiche Fehler aufgetreten, und ich habe zufällig eine Lösung gefunden :). Mit diesen Schritten habe ich das Projekt erstellt und ausgeführt.

Ich habe ein Scala-Projekt in Intellij Idea 9.0.2 final erstellt (es wurde heute veröffentlicht). Ich habe das Scala-Plugin installiert, das IDE neu gestartet und ein neues Scala-Projekt (mit dem Namen "TestScala") mit scala-2.8.0.Beta1 als Projektbibliothek erstellt. Nachdem das Projekt erstellt und die Scala-Bibliotheken heruntergeladen wurden, habe ich eine Test.scala-Datei mit folgendem Inhalt erstellt:

object Test  {
 def main(args:Array[String]){
   println("hello")
 }
}

Danach erstellte ich eine Startkonfiguration ("Konfigurationen bearbeiten") und wählte die Vorlage "Anwendung". Ich habe als Hauptklasse Test festgelegt und den Projektnamen ("TestScala") im Kombinationsfeld "Klassenpfad und JDK des Moduls verwenden" ausgewählt. Beim Ausführen der Konfiguration erhalte ich den gleichen Fehler, den Sie gemeldet haben ("Interner Scalac-Fehler: Klasse Java.lang.ClassNotFoundException").

Jetzt kommt der verrückte Teil :). Ich klicke mit der rechten Maustaste auf das Projekt, wähle "Moduleinstellungen", schaue alle Einstellungen an, aber ich ändere nichts . Klicken Sie auf "Übernehmen" und "OK", führen Sie die Konfiguration erneut aus und es funktioniert :).

Ich benutze Intellij Idea 9.0.2 der endgültigen Version (Build 95-66); Ubuntu 9.10 und JDK 1.6.0_18. Ich muss auch erwähnen, dass ich ein JDK in Intellij konfiguriert habe, ansonsten gibt es einen zusätzlichen Schritt, um es zu konfigurieren. 

UPDATE:

Um die Einstellung des Moduls zu überprüfen, muss man auf Module-> Scala und Facetten-> Scala klicken (erweitern und Scala (ProjectName) anklicken) . Bei beiden Einstellungen handelt es sich um den Standort des Scala-Compilers und der Scala-Bibliothek. Ich vermute, diese Werte werden beim Erstellen des Projekts nicht richtig festgelegt, aber gespeichert, sobald der Benutzer sie berührt und die Einstellungen speichert. 

20
Andrei Oprisan

Um Ihre Frage zu beantworten, ist es aus zwei Gründen schwierig, eine funktionierende IDE für Scala zu bekommen: (A) Scala erreicht gerade erst ein breites Publikum und (B) wegen (a) Es gibt keinen Geschäftszweck, um Zeit für eine Scala-IDE zu verbringen.

Wenn Sie alt genug sind, um sich zurückzuschlagen, und jung genug, um sich noch daran zu erinnern, würden Sie wissen, dass wir uns in den ersten fünf oder mehr Jahren Java mit OK-Tools wie JBuilder befunden haben, die nicht viel mehr als Ihr Compilieren erledigten Code, wenn Sie dies sagten - keine Fehlerhervorhebung, kein automatischer Import, und das Word-Refactoring gab es nicht einmal. Wenn Sie Pioneer wollen, müssen Sie darauf vorbereitet sein, einen Teil der Straße selbst oder zumindest den Busch zu brechen.

Ich weiß, dass es Ihnen nicht helfen wird, aber ich habe IDEA erfolgreich für Scala unter Linux, Mac und Windows verwendet. Normalerweise habe ich das Scala SDK irgendwo lokal installiert und verweise auf IDEA, anstatt die 'Download'-Option zu verwenden.

Derzeit verwende ich hauptsächlich eine EAP-Version von IDEA 9 unter Mac OS X mit Scala 2.8.0.Beta1-RC5 und es funktioniert gut (außer dass fsc mit gemischten Quellen nicht zu funktionieren scheint ).

Sie könnten Ihr Glück im IDEA Scala Plugin-Diskussionsforum versuchen, obwohl ich keine großen Antworten auf meine eigenen Beiträge dort hatte.

10
Graham Lea

Die Installation des Plug-Ins ist Voraussetzung.

Als Nächstes sollten Sie eine Bibliothek definieren (global oder projektspezifisch; ich verwende global), die die JAR-Dateien der Scala-Bibliothek und -Compiler enthält (mindestens scala-compiler.jar und scala-library.jar). Das Hinzufügen von Quell-JARs und einer Dokumentations-JAR oder URLs ist ebenfalls eine gute Idee. Machen Sie dann diese Bibliothek zur Abhängigkeit von allen Modulen in Ihrem Projekt, die Scala-Code enthalten.

Finden Sie schließlich die Scala-Facetten in diesen Modulen und deaktivieren Sie dort beide Kontrollkästchen.

6
Randall Schulz

Ich habe gerade eine Neuinstallation durchgeführt und hatte genau dieses Problem selbst. Es stellte sich heraus, dass IDEA eine Paketanweisung hinzugefügt hatte, weil ich die Datei im Root-Paket erstellt hatte . Ich gehe davon aus, dass dies dann als "Paketobjekt Main" kompiliert wurde - gültige Syntax in 2.8? Jedenfalls habe ich die Zeile mit dem besagten Paket gestrichen und alles hat gut funktioniert.

2
Graham Lea

Ich hatte gestern das gleiche Problem, als ich versuchte, es einzurichten. Die Lösung ist ziemlich einfach, Sie müssen lediglich die Scala in den Projekteinstellungen festlegen.

1
Theq

Ich verwende Netbeans, um Scala-Programme zu schreiben. Bisher funktioniert es sehr gut mit meinen Codes. Sie können das Plugin hier ausprobieren: http://wiki.netbeans.org/Scala68v1 .

0
Bruce Li

Ich erhielt diese Fehlermeldung und musste auch mit der rechten Maustaste auf das Projekt klicken und "Moduleinstellungen öffnen". Es war jedoch mehr als nur ein Treffer. Ich musste sicherstellen, dass mein Inhaltsstamm für jedes Projekt korrekt war. Aus irgendeinem Grund gab es falsche Quell- und Testordner.

Mein Projekt verwendet Maven als Hauptwerkzeug für die Erstellung. Das Importieren des Projekts in Intellij ist wahrscheinlich der Grund für diese falschen Einstellungen.

0
OleTraveler

Sie mischen Code mit zwei verschiedenen Scala-Versionen.

0

Ich hatte ein ähnliches Problem, indem ich diese Blogpostanweisungen beendete, das Problem für mich löste

0
LiorH