为什么要使用jdk1.8.0而不是jdk-17?

0 java scala

我正在使用 IntelliJ IDEA 学习 Scala。项目 SDK 始终是 jdk-17,一切正常,直到现在。

我开始在 actor 中练习(Akka in action using Scala)。问题(如scalac:错误:编译 sbt 组件'compiler-interface-2.11.8-61.0'时出错)开始编译书籍示例。建议使用jdk1.8.0,它有帮助。我不明白为什么要使用jdk1.8.0而不是jdk-17?17 > 1.8.0?jdk1.8.0_XXX是实际的SDK吗?

构建.sbt

name := "fault-tolerance"

version := "1.0"

organization := "com.manning"

scalaVersion := "2.11.8"

libraryDependencies ++= {
  val akkaVersion = "2.4.19"
  Seq(
    "com.typesafe.akka"       %%  "akka-actor"                     % akkaVersion,
    "com.typesafe.akka"       %%  "akka-slf4j"                     % akkaVersion,
    "com.typesafe.akka"       %%  "akka-testkit"                   % akkaVersion   % "test",
    "org.scalatest"           %% "scalatest"                       % "3.0.0"       % "test"
  )
}
Run Code Online (Sandbox Code Playgroud)

Tho*_*ger 7

根据Scala JDK兼容性列表

JDK版本 最低 Scala 版本
18 2.13.7、2.12.15
17 号 2.13.6、2.12.15
11 2.13.0、2.12.4、2.11.12
8 2.13.0、2.12.0、2.11.0、2.10.2

如果您想使用 JDK 17,则至少需要使用 Scala 2.12.15。

然而,您的项目指定了 Scala 版本 2.11.8,它不支持 1.8 之后的任何 JDK 版本。

所以你要么需要

  • 如果您想使用 Java 17,请升级您的项目以使用 Scala 2.12.15
  • 如果您想使用 Java 11,请升级您的项目以使用 Scala 2.11.12
  • 否则你就会被 Java 8 困住