2012-03-28 3 views
1

저는 스칼라에서 Programming in 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

아니요, 제가 scal2 Files2.scala를 시도 할 때 오류가 없습니다. scala Files2를 시도하면 오류가 발생합니다. – NobToJuneau

+0

그러면 Jesper가 질문 주석에서 지적한대로 오타가 있어야합니다. – Nicolas

+0

@Nicolas 당신이 정말로 컴파일 할 필요가 없다 ... – dhg

관련 문제