给予:
$cat build.sbt
scalaVersion := "2.11.8"
libraryDependencies ++= List(
"io.spray" %% "spray-client" % "1.3.3"
,"io.spray" %% "spray-json" % "1.3.2"
,"com.typesafe.akka" %% "akka-actor" % "2.4.2"
,"com.typesafe" % "config" % "1.3.0"
,"org.scalatest" % "scalatest_2.11" % "2.2.6" % "test"
)使用这个回答,我尝试使用JDK 7。
但是,我得到了以下错误:
$sbt -java-home /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/ clean test
[info] Loading project definition from /Users/Kevin/Workspace/Work/project/project
[info] Set current project to project (in build file:/Users/Kevin/Workspace/Work/project/)
[success] Total time: 0 s, completed Mar 14, 2016 3:51:10 PM
[info] Updating {file:/Users/Kevin/Workspace/Work/project/}project...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[info] Compiling 9 Scala sources to /Users/Kevin/Workspace/Work/project/target/scala-2.11/classes...
[error] Class java.time.Duration not found - continuing with a stub.
[error] Class java.time.Duration not found - continuing with a stub.
[error] two errors found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 5 s, completed Mar 14, 2016 3:51:16 PM看看这个回答,我猜想/推测我需要添加一个java8时间库作为一个依赖项?
发布于 2016-03-14 22:32:31
Akka2.4需要JDK8,除非您使用的是商业构建,这在文档中提到过。
相关摘录
Akka要求您在机器上安装Java 8或更高版本。 Typesafe提供了Akka和相关项目(如Scala或Play )的商业构建,作为反应性平台的一部分,如果您的项目还不能升级到Java 8,则可以在Java 6中使用该平台。它还包括额外的商业特性或库。
Typesafe配置1.3.0也是依赖于java8
版本1.2.1和更早版本是为Java 6构建的,而更新版本(1.3.0及更高版本)将为Java 8构建。
还请注意,喷雾客户端1.3.3依赖于Akka 2.3.9 (请参阅http://spray.io/project-info/current-versions/#current-versions),您可能希望升级到akka-http,后者是spray的后续。
(由于您似乎使用了符合posix标准的系统,您可能需要查看延夫来管理每个项目的jdk版本)
发布于 2016-03-14 22:27:08
我不知道如何纠正这个错误。
此错误表示您在代码中的某个位置正在java.time.Duration上中继,这是Java8中公开的一个新API。由于您已经降级为Java7,所以这个类不再可用。
要么移除依赖项,要么恢复到Java8。
https://stackoverflow.com/questions/35996883
复制相似问题