从那个课程开始 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一起使用。我不知道如何做到这两点:)
答案 0 :(得分:6)
我相信你得到了这个问题,因为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
来确认您正在运行的版本。
答案 1 :(得分:0)
我使用windows,这个命令在git shell(http://msysgit.github.io/)中适用于我:
sbt -java-home&#34; C:\ Program Files \ Java \ jdk7&#34;
当然除了jdk8之外你还要安装jdk7(我已经在路径中安装了它)。