如何援引Akka helloworld?

时间:2014-01-17 11:17:43

标签: java eclipse scala akka

以下是从http://doc.akka.io/docs/akka/2.2.3/AkkaScala.pdf

中获取的代码
import akka.actor.Actor

object Greeter {
  case object Greet
  case object Done
}
class Greeter extends Actor {
  def receive = {
    case Greeter.Greet =>
      println("Hello World!")
      sender ! Greeter.Done
  }
}

在其中,它说:

enter image description here

如何在Eclipse中独立运行它?

我尝试创建一个新的Run配置,将com.example.HelloWorld设置为主类,程序参数为akka.Main但我收到“main class not found”异常。

更新:

根据TheTerribleSwiftTomato的回答,我有

  1. 将akka.Main输入Main类字段,
  2. 将com.example.HelloWorld添加为Arguments选项卡中的唯一参数。
  3. 但我收到以下错误:

    Exception in thread "main" java.lang.ClassNotFoundException: com.example.HelloWorld
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at akka.actor.ReflectiveDynamicAccess$$anonfun$getClassFor$1.apply(DynamicAccess.scala:67)
        at akka.actor.ReflectiveDynamicAccess$$anonfun$getClassFor$1.apply(DynamicAccess.scala:66)
        at scala.util.Try$.apply(Try.scala:161)
        at akka.actor.ReflectiveDynamicAccess.getClassFor(DynamicAccess.scala:66)
        at akka.Main$.main(Main.scala:32)
        at akka.Main.main(Main.scala)
    

    我已经添加了akka Maven依赖项,还有其他我缺少的东西吗?

1 个答案:

答案 0 :(得分:1)

akka.Main不是参数,它是启动器(即包含main方法的启动器)。在这种情况下,如文档中所述,它将设置ActorSystem实例和其他必要的基础结构。

所以,在Eclipse中,你会:

  • 输入akka.Main Main class 字段和
  • 在{em> Arguments 标签中添加com.example.HelloWorld作为唯一参数。

重新编辑:我看到两个问题:

  • 在您在问题中发布的代码段中,您实际上似乎没有HelloWorld class from the example。你还记得加入你的项目吗?
  • 即使您确实记得包含它,HelloWorld类也会出现轻微错误。它缺少包装声明:

package com.example

纠正(将其移至正确的包裹),您应该开始编写Actor系统。