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 + "]")
}
}
Wie versuchen Sie, es auszuführen? – Nicolas
Wird es 'File2' (wie in der Fehlermeldung erwähnt) oder' Files2' (wie in Ihrer Quelldatei) genannt? – Jesper
Ahhhh, ich fand es.Ich verwechselte den Namen des Objekts .... @ Jesper – NobToJuneau