更新:
我需要放置 libraryDependencies 才能在 Scala 中使用 Actor。
libraryDependencies <++= scalaVersion(v =>
Seq("org.scala-lang" % "scala-actors" % v)
)
Run Code Online (Sandbox Code Playgroud)
当我运行“sbt run”时,我可以成功通过编译,但在运行代码时失败。
这是错误:java.lang.RuntimeException:未检测到主类。
奇怪的是,当我不使用 SBT 时,我可以毫无问题地运行它:
>scalac actor.scala
>scala pingpong
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?
我使用的是 SBT 0.13.0 Scala 版本是 2.10.2
谢谢
这是我的代码:
import scala.actors.Actor
import scala.actors.Actor._
case object Ping;
case object Pong;
case object Stop;
class Ping(count:Int, pong:Actor) extends Actor
{
def act()
{
var counter = count -1 ;
pong ! Ping;
loop
{
react
{
case Pong =>
if( (counter < count) && (counter > 0) ) {Console.println(counter+"->Ping: pong"); pong ! Ping; counter = counter -1;}
else {pong ! Stop;exit()}
}
}
}
}
class Pong extends Actor
{
def act()
{
loop
{
react
{
case Ping => {Console.println("Pong: Ping"); sender ! Pong;}
case Stop => {Console.println("Ping Pong Communication is done!");exit()}
}
}
}
}
object pingpong
{
def main(args: Array[String])
{
println(util.Properties.versionString)
val pong = new Pong
val ping = new Ping(5, pong)
ping.start
pong.start
}
}
Run Code Online (Sandbox Code Playgroud)
在你的构建文件中试试这个:
mainClass in (Compile,run) := Some("pingpong")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11498 次 |
| 最近记录: |