2012-03-28 10 views
1

私はScalaのプログラミングでScalaを学んでいます。本書に記載されているコードを実行しようとすると、次のエラーが表示されます。シンプルなScalaプログラムを実行できません

Exception in thread "main" java.lang.RuntimeException: Cannot figure out how to run target: File2 
    at scala.sys.package$.error(package.scala:27) 
    at scala.tools.nsc.GenericRunnerCommand.scala$tools$nsc$GenericRunnerCommand$$guessHowToRun(GenericRunnerCommand.scala:38) 
    at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48) 
    at scala.tools.nsc.GenericRunnerCommand$$anonfun$2.apply(GenericRunnerCommand.scala:48) 
    at scala.Option.getOrElse(Option.scala:108) 
    at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:48) 
    at scala.tools.nsc.GenericRunnerCommand.<init>(GenericRunnerCommand.scala:17) 
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:33) 
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89) 
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) 

どうすれば解決できますか?

ここに私のコードです:

object Files2 { 
    def filesHere = (new java.io.File(".")).listFiles 
    def filesMatching(query: String, matcher: (String, String) => Boolean) = { 
    for (file <- filesHere; if matcher(file.getName, query)) 
     yield file 
    } 

    def filesEnding(query: String) = filesMatching(query, _.endsWith(_)) 
    def filesContaining(query: String) = filesMatching(query, _.contains(_)) 
    def filesRegex(query: String) = filesMatching(query, _.matches(_)) 

    def main(args: Array[String]) { 
    println("filesEnding(\"scala\").toList [" + filesEnding("scala").toList + "]") 
    println("filesContaining(\"Files1\").toList [" + filesContaining("Files1").toList + "]") 
    println("filesRegex(\".*Re.ex.*\").toList [" + filesRegex(".*Re.ex.*").toList + "]") 
    } 
} 
+3

どのように実行しようとしていますか? – Nicolas

+1

これは 'File2'(エラーメッセージに記載)または' Files2'(あなたのソースファイルのように)と呼ばれていますか? – Jesper

+0

Ahhhh、私はそれを見つけた。私はオブジェクト名を間違えた.... @ Jesper – NobToJuneau

答えて

0

私はちょうどtest.scalaというファイルにコードを貼り付け、その後scala test.scalaでそれを実行し、それがうまく働きました。

dhg ~$ scala test.scala 
filesEnding("scala").toList [List(./test.scala)] 
filesContaining("Files1").toList [List()] 
filesRegex(".*Re.ex.*").toList [List()] 
+0

THX、私はちょうど簡単な間違いを作った – NobToJuneau

+0

@NobToJuneauは、これをマークすることを忘れないでくださいこの答えがあなたの要求を満たしていれば、答えとして受け入れられた(チェックマーク)。 – aitchnyu

3

与えられたファイルはスクリプトではなく、普通のスケーラプログラムであり、コンパイルしてから実行する必要があります。コンパイルの不足によるエラーです:

scalac Files2.scala 
scala Files2 
+0

いいえ、私がスカラーFiles2.scalaを試してみると、エラーはありません。スカラーFiles2を試してみるとエラーが起こります。 – NobToJuneau

+0

それは質問のコメントでJesperによって指摘されているように、タイプミスでなければなりません。 – Nicolas

+0

@ニコラスそれを実際にコンパイルする必要はありません... – dhg

関連する問題