为什么我应该使用 jdk1.8.0 而不是 jdk-17?
Why should I use jdk1.8.0 instead of jdk-17?
我正在使用 IntelliJ IDEA 学习 Scala。项目 SDK 一直是 jdk-17,一切正常,直到现在。
我开始练习演员(Akka in action using Scala)。问题(如 scalac: Error: Error compiling the sbt component 'compiler-interface-2.11.8-61.0')开始编译书籍示例。建议使用 jdk1.8.0,这很有帮助。我不明白为什么我应该使用 jdk1.8.0 而不是 jdk-17? 17 > 1.8.0? jdk1.8.0_XXX是实际的SDK吗?
build.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"
)
}
根据 Scala JDK compatibility list:
JDK version
Minimum Scala versions
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
如果您想使用 JDK17,您至少需要使用 Scala 2.12.15。
但是您的项目指定了 Scala 版本 2.11.8,它不支持 1.8 之后的任何 JDK 版本。
所以你要么需要
- 如果您想使用 Java17
,请升级您的项目以使用 Scala 2.12.15
- 如果您想使用 Java11
,请升级您的项目以使用 Scala 2.11.12
- 否则你会卡在 Java 8
我正在使用 IntelliJ IDEA 学习 Scala。项目 SDK 一直是 jdk-17,一切正常,直到现在。
我开始练习演员(Akka in action using Scala)。问题(如 scalac: Error: Error compiling the sbt component 'compiler-interface-2.11.8-61.0')开始编译书籍示例。建议使用 jdk1.8.0,这很有帮助。我不明白为什么我应该使用 jdk1.8.0 而不是 jdk-17? 17 > 1.8.0? jdk1.8.0_XXX是实际的SDK吗?
build.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"
)
}
根据 Scala JDK compatibility list:
JDK version | Minimum Scala versions |
---|---|
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 |
如果您想使用 JDK17,您至少需要使用 Scala 2.12.15。
但是您的项目指定了 Scala 版本 2.11.8,它不支持 1.8 之后的任何 JDK 版本。
所以你要么需要
- 如果您想使用 Java17 ,请升级您的项目以使用 Scala 2.12.15
- 如果您想使用 Java11 ,请升级您的项目以使用 Scala 2.11.12
- 否则你会卡在 Java 8