我对 Scala 和 Akka 比较陌生,是从 Java、Spring 和 REST API 背景过渡的。目前,我正在学习 Akka Actors Quickstart with Scala 教程。
在尝试按照提供的步骤运行 Scala 的 Hello World 示例时,我在执行
sbt reStart
时遇到了问题。错误信息如下:
akka-quickstart-scala[ERROR] Error: A JNI error has occurred, please check your installation and try again
akka-quickstart-scala[ERROR] Exception in thread "main" java.lang.UnsupportedClassVersionError: akka/actor/typed/ActorSystem has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
经过研究,我找到了将JRE升级到版本11的建议,但由于限制,目前我无法这样做。尝试使用
scalac AkkaQuickstart.scala
在 Java 8 中编译代码会导致以下错误:
AkkaQuickstart.scala:5: error: not found: object akka
import http://akka.actor.typed.ActorRef
鉴于我是 Akka 和 Scala 的新手,并且无法升级 Java 版本,我正在寻求解决此版本不匹配和编译错误的指导。任何帮助将不胜感激。
提前致谢。
删除了对 Java 8 的支持
已发布的工件面向 Java 11 及更高版本。支持的 Java 版本为 11 和 17。
删除 jdk 8 支持的 PR 已合并
Akka 2.9 - 删除了对 Scala 2.12 的支持
删除了对 Scala 2.12 的支持这意味着,如果您只能使用 jdk 8 运行您的项目,则您可以使用的最新版本的 akka 是 2.8.x。已发布的工件针对 Scala 2.13 和 Scala 3.3。
我能够在本地运行以下虚拟 akka hello world
build.sbt
ThisBuild / scalaVersion := "2.13.12"
lazy val root = (project in file("."))
.settings(
name := "akka-dummy-hello-world",
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor-typed" % "2.8.5"
)
)
Main.scala
import akka.actor.typed.ActorSystem
import akka.actor.typed.scaladsl.Behaviors
object Main {
def main(args: Array[String]): Unit = {
val empty = Behaviors.setup[Any] { _ =>
println("hello akka dummy")
Behaviors.empty
}
val actorSystem = ActorSystem(empty, "akka-dummy-hello-world")
actorSystem.terminate()
}
}