添加main方法时代码未运行

时间:2013-08-02 23:11:17

标签: scala

我跟随http://doc.akka.io/docs/akka/2.2.0/AkkaScala.pdf的akka​​教程,以下是HelloWorld计划。我添加了主要方法,但是当我尝试运行它时,我没有在Eclipse中收到“作为scala应用程序运行”。根据从命令行运行程序的文档:“java -classpath akka.Main com.example.HelloWorld”但我需要从Eclipse运行它,所以添加了我自己的main方法。为什么以下代码不会运行?

import akka.actor.Actor
import akka.actor.Props

class HelloWorld extends Actor {

  override def preStart(): Unit = {
    // create the greeter actor
    val greeter = context.actorOf(Props[Greeter], "greeter")
    // tell it to perform the greeting
    greeter ! Greeter.Greet
  }
  def receive = {
    // when the greeter is done, stop this actor and with it the application
    case Greeter.Done => context.stop(self)
  }

  object Greeter {

    def main(args: Array[String]) {
      new HelloWorld
    }   

    case object Greet
    case object Done


  }
  class Greeter extends Actor {
    def receive = {
      case Greeter.Greet =>
        println("Hello World!")
        sender ! Greeter.Done
    }
  }


}

1 个答案:

答案 0 :(得分:2)

main方法必须位于独立object范围内。在这里,您可以在class内的对象中找到它。