Comment utiliser Scala dans IntelliJ idée (ou: pourquoi est-il si difficile d'obtenir un IDE de travail pour Scala)?

j'ai récemment renoncé à essayer D'utiliser Scala dans Eclipse (les choses de base comme l'achèvement ne fonctionne pas). Donc maintenant J'essaie IntelliJ. Je ne suis pas très loin.

j'ai été capable d'éditer des programmes (dans la mise en évidence de la syntaxe et l'achèvement... yay!!!). Mais je suis incapable de gérer même le plus simple "Hello World". C'était à l'origine de l'erreur:

Scala signature Predef has wrong version
Expected 5.0
found: 4.1 in .... scala-library.jar
<!-Mais c'était hier avec L'idée 9.0.1. Voir ci-dessous...

UPDATE

Aujourd'Hui, Je désinstaller IntelliJ 9.0.1, et installer 9.0.2 de disponibilité anticipée, avec la version stable 4/14 du plug-in Scala.

puis j'ai créé un projet à partir de zéro à travers les sorciers:

  • nouveau projet à partir de zéro
  • JDK est de 1,6.u20
  • acceptez la valeur par défaut (projet) au lieu de global / module
  • accepter le téléchargement de Scala 2.8.0beta1 dans le dossier lib du projet

Créé un nouveau classe:

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

Pour mes efforts, j'ai maintenant une nouvelle marque erreur :)

la Voici:

Scalac erreur interne: classe java.lang.ClassNotFoundException [java.net.URLClassLoader$1.run (URLClassLoader.java: 202), java.sécurité.AccessController.doPrivileged (méthode Native), java.net.URLClassLoader.findClass (URLClassLoader.java: 190), java.lang.Chargeur de classe.loadClass (ClassLoader.java:307), le soleil.misc.Lanceur $ AppClassLoader.loadClass (lanceur.java: 301), Java.lang.Chargeur de classe.loadClass (ClassLoader.java: 248), java.lang.Classe.forName0 (méthode Native), java.lang.Classe.forName(de la Classe.java: 169), org.jetbrains.greffon.Scala.compilateur.rt.ScalacRunner.principal (ScalacRunner.java: 72)]

MISE À JOUR FINALE

j'ai désinstallé 9.0.2 EA et réinstallé 9.0.1, mais cette fois est allé avec la version 2.7.3 de Scala plutôt que le 2.7.6 par défaut, parce que 2.7.3 est celui montré dans les captures d'écran au site IntelliJ (je suppose que le Les screen-shots prouvent qu'ils ont vraiment testé cette version!). Maintenant tout fonctionne!!!

47
demandé sur Vadzim 2010-04-19 18:25:21

9 réponses

j'ai rencontré la même erreur scalac en essayant d'exécuter un projet Scala dans Intellij Idea 9.0.2 et j'ai réussi à trouver une solution par hasard :). Ce sont les étapes que j'ai franchies dans la création du projet et son exécution.

j'ai créé un projet Scala dans Intellij Idea 9.0.2 final (il est sorti aujourd'hui). J'ai installé le plugin Scala, redémarré L'IDE et créé un nouveau projet Scala (avec le nom "TestScala") avec scala-2.8.0.Beta1 comme bibliothèque de projet. Une fois l' le projet est créé et les bibliothèques scala téléchargées, j'ai créé un Test.scala fichier avec le contenu suivant:

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

après cela, j'ai créé une configuration de lancement ("modifier les Configurations"), en choisissant le modèle "Application". J'ai défini comme Test de classe principale et j'ai choisi le nom du projet ("TestScala") dans la boîte bascule "Use classpath and JDK of module". Lorsque j'exécute la configuration, j'obtiens la même erreur que celle que vous avez signalée ("Scalac internal error: class Java.lang.ClassNotFoundException").

maintenant vient la partie effrayante:). Je clique avec le bouton droit de la souris sur le projet, choisissez "Paramètres du Module", regardez tous les paramètres mais je ne peux pas changer quoi que ce soit . Cliquez sur "appliquer" et "ok", essayez d'exécuter à nouveau la configuration et cela fonctionne:).

j'utilise Intellij Idea 9.0.2 la version finale (build 95-66); Ubuntu 9.10 et JDK 1.6.0_18. Je dois également mentionner que j'ai eu un JDK configuré dans Intellij, sinon il ya un étape supplémentaire pour le configurer.

mise à jour:

lors de la vérification du paramétrage du module, il faut cliquer sur le Module - > Scala et Facettes->Scala (développez-la et cliquez sur Scala(ProjectName)) . Ces deux paramètres concernent le compilateur scala et l'emplacement de la bibliothèque scala. Je suppose que ces valeurs ne sont pas correctement définies lorsque le projet est créé mais sont sauvegardées une fois que l'utilisateur les touche et enregistre les paramètres.

20
répondu Andrei Oprisan 2010-04-22 07:07:07

pour répondre à votre question, il est difficile d'obtenir un IDE fonctionnel pour Scala pour deux raisons: (a) Scala ne fait que commencer à atteindre un large public et (b) en raison de (a), il n'y a pas d'analyse de rentabilisation pour passer du temps sur un scalaire.

aussi, si vous êtes assez vieux pour vous en rappeler et assez jeune pour vous en souvenir encore, vous savez que pour les cinq premières années ou plus de Java, nous étions coincés avec des outils corrects comme JBuilder qui n'ont fait que compiler votre code quand vous l'avez dit - pas d'erreur de mise en évidence, pas d'importation automatique, et le mot refactoring n'existait même pas. Si vous voulez pioneer, vous devez être prêt à couper une partie de la route vous-même, ou au moins de bush bash.

je sais que cela ne vous aidera pas, mais J'ai utilisé avec succès IDEA Pour Scala sous Linux, Mac et Windows. J'ai généralement le SDK Scala installé quelque part localement et j'ai l'idée de pointer là-dessus plutôt que d'utiliser l'option 'download'.

actuellement, j'utilise principalement un version EAP de L'idée 9 sur Mac OS X avec Scala 2.8.0.Beta1-RC5 et il fonctionne bien (sauf que fsc ne semble pas fonctionner avec des sources mixtes).

Vous pouvez essayer votre chance de plus à l' IDEA Scala Plugin Forum de Discussion, mais je n'ai pas eu beaucoup de réponses à mes propres postes.

10
répondu Graham Lea 2010-04-20 10:54:18

L'installation du plug-in est une condition préalable.

la prochaine chose que vous devez faire est de définir une bibliothèque (globale ou spécifique au projet; j'utilise global) qui détient la bibliothèque Scala et compiler des fichiers JAR (au minimum, c'est scala-compiler.jar et scala-library.jar). Ajouter des bocaux de sources et un bocal de documentation ou des URLs est également une bonne idée. Ensuite, faites de cette bibliothèque une dépendance de tous les modules de votre projet qui incluent le code Scala.

enfin, trouver les facettes de Scala dans ces modules et désélectionner les deux cases.

6
répondu Randall Schulz 2010-04-20 14:46:48

je viens de faire une nouvelle installation et eu exactement ce même problème moi-même. Il s'est avéré que, parce que j'avais créé le fichier dans le paquet racine, IDEA avait ajouté une déclaration de paquet en haut avec un nom de paquet. Je suppose que cela a ensuite été compilé en tant que syntaxe" package object Main " - valide en 2.8? Bref, j'ai supprimé la ligne qui disait paquet et tout a bien fonctionné.

2
répondu Graham Lea 2010-06-07 02:53:34

j'ai eu le même problème hier en essayant de le configurer. La Solution est assez simple, vous avez juste à mettre scala quelque part dans les paramètres du projet.

1
répondu Theq 2010-04-20 11:34:51

vous mélangez du code compilé avec deux versions Scala différentes.

0
répondu Daniel C. Sobral 2010-04-19 14:57:25

J'utilise Netbeans pour écrire des programmes scala. Jusqu'à présent, il fonctionne très bien avec mes codes. Vous pouvez essayer le plugin ici: http://wiki.netbeans.org/Scala68v1.

0
répondu Bruce Li 2010-05-17 09:47:39

j'ai eu cette erreur et j'ai dû faire un clic droit sur le projet et "ouvrir les paramètres du Module". Cependant,il était plus que de frapper appliquer. Je devais m'assurer que ma racine de contenu était correcte pour chaque projet. Pour une raison quelconque, il y avait des dossiers Source et Test incorrects.

mon projet utilise maven comme outil de construction principal et importer le projet dans Intellij est probablement ce qui a créé ces paramètres incorrects.

0
répondu OleTraveler 2011-01-26 18:16:32

j'ai eu le même problème, à la suite d' blog instructions résolu le problème pour moi

0
répondu LiorH 2011-08-26 11:55:09