如何在Java应用程序中使用Akka Actors?

Jon*_*nas 5 java noclassdeffounderror actor akka

我想在Java中使用Akka actor.

我下载akka-1.0.zip并添加akka-actor-1.0.jar到Eclipse中的"Build Path".

然后我写了这个Actor类:

package com.example;

import akka.actor.UntypedActor;

public class MyActor extends UntypedActor {

    public void onReceive(Object message) throws IllegalArgumentException {
        if (message instanceof String) {
            System.out.println("Received: " + message);
        } else throw new IllegalArgumentException("Unknown message: " + message);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我在Eclipse中遇到错误:

The type scala.Option cannot be resolved.
The type scala.Some cannot be resolved.
The type scala.PartialFunction cannot be resolved.
The type scala.ScalaObject cannot be resoled.
Run Code Online (Sandbox Code Playgroud)

我是否需要在"构建路径"中添加更多文件或者我做错了什么?我没有找到有用的文档.

更新:我添加scala-library.jar到我的构建路径,上面的错误消失了.但是在编译和运行应用程序时出现错误:

Exception in thread "main" java.lang.NoClassDefFoundError: net/lag/configgy/ConfigMap
    at akka.actor.Actors.actorOf(Actors.java:70)
    at com.example.ActorTest.main(ActorTest.java:9)
Caused by: java.lang.ClassNotFoundException: net.lag.configgy.ConfigMap
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more
Run Code Online (Sandbox Code Playgroud)

这是我使用我的演员的主要类:

package com.example;

import akka.actor.ActorRef;
import akka.actor.Actors;

public class ActorTest {

    public static void main(String[] args) {
        ActorRef myActor = Actors.actorOf(MyActor.class);
        myActor.start();
        System.out.println("My Actor started");
    }

}
Run Code Online (Sandbox Code Playgroud)

Pet*_*ego 2

你的文件中akka-1.0.zipscala-library.jar. 尝试将其添加到构建路径中。

lib_managed此外, zip 中还有一个目录,其中包含更多库文件。可能还需要其中一些。

为了避免这种情况,你应该尝试使用 Maven。有一个 Akka 存储库:http://scalablesolutions.se/akka/repository/se/scalablesolutions/akka/