2012-03-28 11 views
1

Ich lerne Scala nach dem Buch Programmieren in Scala. Wenn ich versuche, den im Buch angegebenen Code auszuführen, erhalte ich den folgenden Fehler:Kann kein einfaches Scala-Programm ausführen

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) 

Wie löse ich das?

Hier ist mein Code:

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

Wie versuchen Sie, es auszuführen? – Nicolas

+1

Wird es 'File2' (wie in der Fehlermeldung erwähnt) oder' Files2' (wie in Ihrer Quelldatei) genannt? – Jesper

+0

Ahhhh, ich fand es.Ich verwechselte den Namen des Objekts .... @ Jesper – NobToJuneau

Antwort

0

ich Ihren Code in eine Datei gerade eingefügt genannt test.scala und lief dann mit scala test.scala und es funktionierte gut.

+0

THX, machte ich nur einen einfachen Fehler – NobToJuneau

+0

@NobToJuneau, vergessen Sie nicht, dies zu markieren als akzeptierte Antwort (das Häkchen), wenn diese Antwort Ihre Anforderung erfüllt. – aitchnyu

3

Die angegebene Datei ist kein Skript, es ist ein einfaches Scala-Programm, Sie müssen es kompilieren und dann ausführen. der Fehler liegt an der fehlenden Kompilierung:

scalac Files2.scala 
scala Files2 
+0

Nein, Wenn ich scalac Files2.scala versuche, gibt es keine Fehler. Wenn ich scala Files2 versuche, kommen Fehler. – NobToJuneau

+0

Dann muss es ein Tippfehler sein, wie Jesper in den Fragekommentaren darauf hingewiesen hat. – Nicolas

+0

@Nicolas du musst es nicht wirklich kompilieren ... – dhg