如何在IntelliJ IDEA中运行akka actor

ses*_*ses 9 java intellij-idea akka

来自Akka的网站文档:

然后,这个主要方法将创建运行actor所需的基础结构,启动给定的主actor,并在主actor终止后安排整个应用程序关闭.因此,您将能够使用类似于以下的命令运行上述代码:

java -classpath akka.Main example.two.HelloWorld

那么,我如何从IntelliJ IDEA启动它呢?我还没有找到合适的窗口.

对AKKA的依赖已经在项目中:

 <dependencies>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-actor_2.10</artifactId>
            <version>2.2-M3</version>
        </dependency>
    </dependencies>
Run Code Online (Sandbox Code Playgroud)

代码本身(你可以看到没有main(...)):

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

mab*_*aba 12

看起来文档和二进制发行版不同步.

正如你在Github上看到的那样,Main.scala是在16天前添加的.

要解决此问题,您可以将依赖项版本更改为SNAPSHOT.将快照存储库添加到pom并将版本更改为2.2-SNAPSHOT:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.stackoverflow</groupId>
    <artifactId>akka-app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <name>${project.artifactId}-${project.version}</name>

    <repositories>
        <repository>
            <id>akka-snapshots</id>
            <name>Akka Snapshots</name>
            <url>http://repo.akka.io/snapshots/</url>
            <layout>default</layout>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-actor_2.10</artifactId>
            <version>2.2-SNAPSHOT</version>
        </dependency>

    </dependencies>

</project>
Run Code Online (Sandbox Code Playgroud)

现在akka.Main将可用.要启动应用程序,您必须指向正确的主类并添加自己的actor类作为参数.

首先选择创建一个新的运行配置:

在此输入图像描述

然后添加一个新应用程序:

在此输入图像描述

给应用程序一个名字(Actor或者其他东西)并填写主类akka.Main,并将你的HelloWorld类添加为Program Arguments(记得包括完整的包):

在此输入图像描述

现在您已准备好运行程序,只需按工具栏中的播放按钮:

在此输入图像描述

瞧!