来自 Akka 网站文档:
然后,这个主要方法将创建所需的基础设施
运行演员,启动给定的主要演员并安排
一旦主要参与者终止,整个应用程序就会关闭。因此
您将能够使用类似于以下的命令运行上面的代码
下列的:
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>
代码本身(如您所见,没有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);
}
}
文档和二进制发行版似乎不同步。
如你看到的在 Github 上 https://github.com/akka/akka/tree/master/akka-actor/src/main/scala/akka the 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>
Now the akka.Main
将可用。为了启动应用程序,您必须指向正确的主类并添加您自己的参与者类作为参数。
首先选择创建新的运行配置:
然后添加一个新的应用程序:
为应用程序命名(Actor 或其他名称)并填写主类akka.Main
并添加你的HelloWorld
类为Program Arguments
(记得附上完整的包):
现在您已准备好运行该程序,只需按工具栏中的播放按钮即可:
Voila!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)