Scala Akka快速入门:Java版本不匹配和编译错误

km0tfn4u  于 12个月前  发布在  Scala
关注(0)|答案(1)|浏览(197)

我是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版本,我正在寻求解决此版本不匹配和编译错误的指导。任何帮助都将不胜感激。
先谢了。

nhhxz33t

nhhxz33t1#

Akka 2.9 -移除对Java 8的支持

移除对Java 8的支持

已发布的构件针对Java 11及更高版本。支持的Java版本为11和17。
PR to drop jdk 8 support已合并
Akka 2.9 -删除对Scala 2.12的支持

Scala 2.12支持移除

已发布的构件针对Scala 2.13和Scala 3.3。
也就是说,如果你只能用jdk 8运行你的项目,你可以使用的akka的最新版本是2.8.x。
我能够在本地运行以下虚拟akka hello world

  • 第一个月
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()
  }

}

相关问题