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

如何在Java应用程序中使用Akka角色?,java,actor,noclassdeffounderror,akka,Java,Actor,Noclassdeffounderror,Akka,我想在Java中使用 我下载了akka-1.0.zip并将akka-actor-1.0.jar添加到Eclipse中的“构建路径”中 然后我写了这个演员类: package com.example; import akka.actor.UntypedActor; public class MyActor extends UntypedActor { public void onReceive(Object message) throws IllegalArgumentExcepti

我想在Java中使用

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

然后我写了这个演员类:

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

}

我不知道Akka actors,但似乎您也需要一些scala支持(构建路径上的libs)。

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

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


为了避免这种情况,你应该试试maven。有一个Akka存储库:

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

我在Eclipse中安装了Scala IDE的Java项目中使用Akka时发现了这个问题。当使用未安装Scala IDE的Eclipse实例时,问题就消失了。Eclipse可能被两个Scala库弄糊涂了?

谢谢,我在构建路径中添加了
Scala library.jar
,但我的应用程序中仍然存在一些错误。请参阅我的更新。在我提到的目录中有一个
configgy-2.0.2-nologgy.jar
。您可以将此目录中的所有jar添加到构建路径中,或者开始使用maven自动解析所有依赖项。因此Akka需要maven,除非我添加54个大小超过10MB的jar文件,包括Jetty等Web服务器。这让我远离阿克卡。无论如何谢谢。不,阿克卡不需要马文。Maven是一个构建工具,对大型团队非常有用,因为(除其他外)它自动解析依赖项,所以人们不必手动将JAR添加到构建路径中。Akka是一个大型工具集,因此它依赖于许多库。现在,
akka actors
可能只是在libdir中使用了jar的一个子集,但在经历了try-error过程之前,您不会知道。通常软件项目会列出它们的依赖项,但我无法仅为akka actors找到这样的列表。无论如何,一定要试试maven。我相信你会发现这很有帮助。我知道I do.akka-actor-1.0.jar需要几个依赖项,您可以在这里看到它们:但是,在akka master中,我们现在已经成功删除了akka-actor的所有依赖项(scala library.jar除外)。jar@Viktor:谢谢,现在使用
akka-actor-1.1-M1.jar
我只需要添加
scala library.jar
(8MB)。然而,现在我测试了
akka-typed-actor-1.1-M1.jar
,得到了一个类似的问题:
java.lang.NoClassDefFoundError:org/codehaus/aspectwerkz/joinpoint/CodeRtti
我现在必须添加哪些库?或者它又不能正常工作了: