首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Akka HelloWorld未编译:-(

Akka HelloWorld未编译:-(
EN

Stack Overflow用户
提问于 2013-10-05 01:16:52
回答 1查看 1.6K关注 0票数 1

在过去的几天里,我一直在努力掌握AKKA和我得到的演员模型,我通过消息等方式进行交流,但如果我能得到一个简单的HelloWorld项目来编译,我就会受不了。下面是单个helloWorld.java文件...我已经在这里包含了两个类(Actor)...

代码语言:javascript
复制
import akka.actor.Props;
import akka.actor.UntypedActor;
import akka.actor.ActorRef;

public class helloWorld extends UntypedActor {

  @Override
  public void preStart() {
    // create the greeter actor
    final ActorRef greeter =
        getContext().actorOf(Props.create(Greeter.class), "greeter");
    // tell it to perform the greeting
    greeter.tell(Greeter.Msg.GREET, getSelf());
  }

  @Override
  public void onReceive(Object msg) {
    if (msg == Greeter.Msg.DONE) {
      // when the greeter is done, stop this actor and with it the application
      getContext().stop(getSelf());
    } else unhandled(msg);
  }
}

public class Greeter extends UntypedActor {

  public static enum Msg {
    GREET, DONE;
  }

  @Override
  public void onReceive(Object msg) {
    if (msg == Msg.GREET) {
      System.out.println("Hello World!");
      getSender().tell(Msg.DONE, getSelf());
    } else unhandled(msg);
  }

}

下面是我在终端(Ubunut)中使用的命令...

代码语言:javascript
复制
java -classpath $AKKA_HOME/lib/scala-library.jar:$AKKA_HOME/lib/akka/akka-actor_2.10-2.2.1.jar:$AKKA_HOME/lib/akka/config-1.0.2.jar akka.Main helloWorld

这是我得到的一个例外。

代码语言:javascript
复制
Exception in thread "main" java.lang.ClassNotFoundException: helloWorld
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)
    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)

有人能给点建议吗?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2013-10-06 02:04:32

您正在使用的类路径只包含依赖jars,而不包含您的helloWorld.class (当然,您还需要编译它)。如果您使用

代码语言:javascript
复制
javac -classpath $AKKA_HOME/lib/scala-library.jar:$AKKA_HOME/lib/akka/akka-actor_2.10-2.2.1.jar:$‌​AKKA_HOME/lib/akka/config-1.0.2.jar helloWorld.java

然后,您将在当前工作目录中找到它,这意味着您只需添加“:”。添加到类路径以使其正常工作。另一个建议是避免使用缺省包,并始终将您的类放入一个命名包中,如package tsume

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19187118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档