以下代码取自 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
}
}
其中写道:
如何在 Eclipse 中独立运行它?
我尝试创建一个新的运行配置,将 com.example.HelloWorld 设置为主类,程序参数为 akka.Main,但我收到“未找到主类”异常。
更新:
根据 TheTerribleSwiftTomato 的回答,我有
- 在 Main 类字段中输入 akka.Main,然后
- 在“参数”选项卡中添加了 com.example.HelloWorld 作为唯一参数。
但我收到以下错误:
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 依赖项,还有什么我还缺少的吗?
最佳答案
akka.Main
不是一个参数,它是启动器类(即包含 main
方法的类)。在这种情况下,如文档中所述,它将设置 ActorSystem
实例和其他必要的基础设施。
因此,在 Eclipse 中,您将:
- 在Main class字段中输入
akka.Main
,然后 - 添加
com.example.HelloWorld
作为参数选项卡中的唯一参数。
重新编辑:我看到两个问题:
- 在您在问题中发布的代码片段中,您实际上似乎没有
HelloWorld
class from the example 。您记得将其包含在您的项目中吗? - 即使您确实记得包含它,
HelloWorld
类中也会出现一个小错误。它缺少包声明:
包 com.example
纠正这个问题(将其移动到正确的包中),您就可以开始编写 Actor 系统了。
关于java - 如何调用Akka helloworld?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184626/