5

我想在 Java中使用Akka 演员。

我在 Eclipse 中下载akka-1.0.zip并添加akka-actor-1.0.jar到我的“构建路径”中。

然后我写了这个 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);
    }
}

但我在 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.

我是否需要在“构建路径”中添加更多文件,或者我做错了什么?我发现文档没有那么有用。

更新:我添加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

这是我使用我的演员的主要课程:

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");
    }

}
4

4 回答 4

2

在您的akka-1.0.zip文件中有scala-library.jar. 尝试将其添加到构建路径。

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

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

于 2011-03-09T12:16:50.370 回答
2

您可以在此处找到完整的工作示例;这是一个 Maven 项目,因此它会自动为您获取依赖项。

于 2011-03-09T12:18:01.923 回答
1

我在安装了 Scala IDE 的 Eclipse 中的 Java 项目中使用 Akka 看到了这个问题。在没有安装 Scala IDE 的情况下使用 Eclipse 实例时,问题就消失了。Eclipse 可能被周围的两个 Scala 库弄糊涂了?

于 2011-07-12T17:56:49.513 回答
0

我不知道 Akka 演员,但似乎你也需要一些 scala 支持(构建路径上的库)。

于 2011-03-09T12:06:59.247 回答