Coursera – Principes de functional programming à Scala – ne peut pas fonctionner avec des exemples de projets en raison d’erreurs

De ce cours https://class.coursera.org/progfun-004/assignment

J’ai téléchargé http://spark-public.s3.amazonaws.com/progfun/assignments/example.zip

Ceci importé à Intellij Idea.

Mais le problème est de vérifier le code, car bien sûr, ils exécutent sbt dans la console …

Après avoir exécuté “sbt” dans la console, j’ai:

D:\learning\example>sbt Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 [info] Loading project definition from D:\learning\example\project\project error: error while loading CharSequence, class file 'C:\Program Files\Java\jdk1.8.0_05\jre\lib\rt.jar(java/lang/CharSequence.cl ass)' is broken (bad constant pool tag 15 at byte 1501) [error] Type error in expression Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q 

J’ai créé un nouveau projet dans Intellij Idea avec SBT et ça marche … mais la version de SBT est autre que dans un exemple de projet. Mais quand je change de version de SBT au plus récent, j’obtiens des erreurs de dépendance … Je m’emstack et ne peux pas bouger … Comment résoudre une situation comme celle-là?

Je suppose que je peux essayer de déplacer tous les projets vers Java8 ou forcer sbt dans ma console à travailler avec Java7. Je ne sais pas faire les deux 🙂

    Je crois que vous obtenez ce problème parce que Scala avant 2.10.4 ne supporte pas JDK8. Il y a un problème sur github décrivant le problème. Vous devez rétrograder vers Java 7.

    Si vous utilisez sbt sous Linux, vous pouvez définir le paramètre -java-home .

      $ sbt -help # java version (default: java from PATH, currently java version "1.7.0_60") -java-home  alternate JAVA_HOME 

    Sur Windows, cependant, ce n’est pas si facile.

    Sbt utilise sbt.bat pour exécuter sbt sous Windows. Vous pouvez le trouver en écrivant where sbt dans la console Windows.

     C:\Users\lpiepiora>where sbt C:\Program Files\sbt\bin\sbt C:\Program Files\sbt\bin\sbt.bat 

    Maintenant, vous pouvez éditer C:\Program Files\sbt\bin\sbt.bat et au début du fichier juste après

     @REM SBT launcher script @REM @REM Envioronment: @REM JAVA_HOME - location of a JDK home dir (mandatory) @REM SBT_OPTS - JVM options (optional) @REM Configuration: @REM sbtconfig.txt found in the SBT_HOME. 

    append

     set JAVA_HOME="C:\Program Files\..." 

    Si vous exécutez sbt, redémarrez-le. Confirmez la version que vous exécutez en tapant dans la ligne de commande sbt.

    J’utilise windows et cette commande en git shell ( http://msysgit.github.io/ ) fonctionne pour moi:

    sbt -java-home “C: \ Program Files \ Java \ jdk7”

    Bien sûr, outre jdk8, vous devez installer jdk7 (je l’ai installé dans le chemin ci-dessus).