从那门课
https://class.coursera.org/progfun-004/assignment

我下载了
http://spark-public.s3.amazonaws.com/progfun/assignments/example.zip

导入到Intellij Idea。

但是问题在于验证代码,因为它们当然在控制台中运行sbt ...

在控制台中运行“sbt”后,我得到:

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

我用SBT在Intellij Idea中创建了一个新项目,它可以工作...但是SBT版本不是示例项目中的其他项目。但是,当我将SBT版本更改为最新版本时,出现依赖错误...我堆叠并且无法移动...如何解决这种情况?

我想我可以尝试将所有项目移至Java8或在控制台中强制sbt与Java7一起使用。我都不知道怎么做:)

最佳答案

我相信您会遇到此问题,因为Scala 2.10.4之前的版本不支持JDK8。有一个issue on github描述问题。您必须降级到Java 7。

如果您在Linux上运行sbt,则可以设置-java-home参数。

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

但是在Windows上并不是那么容易。

Sbt使用sbt.bat在Windows上运行sbt。您可以通过在Windows控制台中编写where sbt来找到它。
C:\Users\lpiepiora>where sbt
C:\Program Files\sbt\bin\sbt
C:\Program Files\sbt\bin\sbt.bat

现在,您可以编辑C:\Program Files\sbt\bin\sbt.bat,然后在文件的开头
@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.

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

如果您正在运行sbt,请重新启动它。通过在sbt命令行中键入about来确认您正在运行的版本。

关于windows - Coursera-Scala中的函数式编程原理-由于错误而无法与示例项目一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24478267/

10-11 22:49
查看更多