2014-06-29 12 views
7

Da quel corso https://class.coursera.org/progfun-004/assignmentCoursera - Principi di programmazione funzionale in Scala - non può funzionare con progetto di esempio a causa di errori

ho scaricato http://spark-public.s3.amazonaws.com/progfun/assignments/example.zip

importato questo per IntelliJ IDEA.

Ma il problema è quello di verificare il codice, perché nel corso essi in esecuzione sbt in console ...

Dopo run "SBT" in consolle ottengo:

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 

Ho creato nuovo progetto in IntelliJ Idea con SBT e funziona ... ma la versione di SBT è diversa da quella del progetto di esempio. Ma quando cambio la versione di SBT a nuovo ho degli errori di dipendenza ... impilo e non posso muovermi ... Come risolvere una situazione del genere?

Immagino di poter provare a spostare tutto il progetto su Java8 o forzare sbt nella mia console a funzionare con Java7. Non so come fare entrambi :)

+4

non è il forum dei courseras un posto migliore per questo? – Carsten

+1

Nessun supporto per Java 8 - vedere [questo post sul forum del corso] (https://class.coursera.org/progfun-004/forum/thread?thread_id=39). Downgrade a Java 7. –

+0

Wow ... mi sto spostando da PHP quindi ho così tante cose su cui concentrarmi, quindi non mi sono nemmeno reso conto che c'è un forum .... con risposta:/Scusa. Ma perché '' 'sbt -java-home C: \ Programmi \ Java \ jdk1.7.0_60''' esegue ancora sbt con Java8? Come eseguire sbt con Java7? – kabra

risposta

6

Credo che questo problema si verifichi perché Scala precedente 2.10.4 non supporta JDK8. C'è un issue on github che descrive il problema. È necessario eseguire il downgrade a Java 7.

Se si sta eseguendo sbt su Linux è possibile impostare il parametro -java-home.

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

Su Windows tuttavia non è così facile.

Sbt utilizza sbt.bat per eseguire sbt su Windows. Puoi trovarlo scrivendo where sbt nella console di Windows.

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

Ora è possibile modificare C:\Program Files\sbt\bin\sbt.bat e all'inizio del file appena dopo

@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. 

aggiungere

set JAVA_HOME="C:\Program Files\...<path to your Java 7>" 

Se si sta eseguendo SBT, riavviarlo. Conferma la versione che stai utilizzando digitando about nella riga di comando sbt.

0

utilizzare Windows e questo comando in guscio Git (http://msysgit.github.io/) funziona per me:

sbt -java-casa "C: \ Program Files \ Java \ jdk7"

Naturalmente oltre jdk8 avete per installare jdk7 (l'ho installato nel percorso come sopra).

Problemi correlati