2012-04-19 72 views
2

我正在撕裂我的頭髮,試圖讓我的Windows上運行的vanilla Play應用程序(但沒有更長的時間,希望!)開發機器。「object scala not found」試圖運行vanilla Play 2應用程序

我下載的是類型安全堆棧2.1和使用推薦giterate模板創建一個基本的播放應用程序:

g8 typesafehub/play-scala

然後我運行sbt run並等待服務器啓動,導航到localhost:9000並獲取java.lang.ExceptionInInitializerError,其根本原因爲MissingRequirementError: object scala not found。聽起來像一個類路徑問題(?) - 但我不知道從哪裏開始1)我是新來的sbt,scala和play,以及2)我在診斷和解決classpath問題上很垃圾。所以我想我會在這裏問,希望有人能夠指出我一個有用的調查指導。

這裏是堆棧跟蹤:

play.api.UnexpectedException: Unexpected exception [ExceptionInInitializerError: null] 
     at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$11.apply(PlayReloader.scala:228) ~[na:na] 
     at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$11.apply(PlayReloader.scala:221) ~[na:na] 
     at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.2] 
     at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2.apply(PlayReloader.scala:221) ~[na:na] 
     at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2.apply(PlayReloader.scala:219) ~[na:na] 
     at scala.Either$LeftProjection.map(Either.scala:183) ~[scala-library.jar:0.11.2] 
java.lang.ExceptionInInitializerError: null 
     at play.templates.ScalaTemplateCompiler$TemplateAsFunctionCompiler$.getFunctionMapping(ScalaTemplates.scala:561) ~[templates_2.9.1-2.0.jar:2.0] 
     at play.templates.ScalaTemplateCompiler$.generateFinalTemplate(ScalaTemplates.scala:500) ~[templates_2.9.1-2.0.jar:2.0] 
     at play.templates.ScalaTemplateCompiler$.compile(ScalaTemplates.scala:189) ~[templates_2.9.1-2.0.jar:2.0] 
     at sbt.PlayCommands$$anonfun$48$$anonfun$apply$38.apply(PlayCommands.scala:533) ~[na:na] 
     at sbt.PlayCommands$$anonfun$48$$anonfun$apply$38.apply(PlayCommands.scala:531) ~[na:na] 
     at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60) ~[scala-library.jar:0.11.2] 
Caused by: scala.tools.nsc.MissingRequirementError: object scala not found. 
     at scala.tools.nsc.symtab.Definitions$definitions$.getModuleOrClass(Definitions.scala:655) ~[scala-compiler.jar:na] 
     at scala.tools.nsc.symtab.Definitions$definitions$.getModule(Definitions.scala:605) ~[scala-compiler.jar:na] 
     at scala.tools.nsc.symtab.Definitions$definitions$.ScalaPackage(Definitions.scala:145) ~[scala-compiler.jar:na] 
     at scala.tools.nsc.symtab.Definitions$definitions$.ScalaPackageClass(Definitions.scala:146) ~[scala-compiler.jar:na] 
     at scala.tools.nsc.symtab.Definitions$definitions$.AnyClass(Definitions.scala:176) ~[scala-compiler.jar:na] 
     at scala.tools.nsc.symtab.Definitions$definitions$.init(Definitions.scala:814) ~[scala-compiler.jar:na] 

注:別人已經問一模一樣的問題here,但它被關閉的東西是「永遠也不可能幫助任何未來的訪客」。由於我是未來的訪問者,誰能找到對此非常有幫助的答案,我覺得有理由再次自問。

謝謝!

+0

我有同樣的確切問題。請不要關閉這個不太可能幫助另一個人。 – 2012-05-10 17:15:04

回答

0

您不是我通過Typesafe Stack安裝Play 2.0時聽到的第一個抱怨。我沒有時間自己去調查,但我知道第一手通過Play 2.0 Documentation安裝Play 2.0應該避免上述問題。

另一種想法是我發行的是sbt而不是play。當然,它們幾乎是相同的應用程序,但我希望您的sbt命令指向sbt的實例,而play很可能指向具有不同類路徑的單獨可執行文件。

+0

事實上,在我第一次玩play2的時候,我並沒有使用set而是onlyplay命令。此外,我發現GitHub上的文檔更有用,然後在播放的網站上... – adis 2012-04-21 19:21:35

+0

問題是,類型安全的文檔明確顯示使用sbt。當我安裝了類型安全堆棧時,它並沒有以這種方式安裝Play,我只需在命令行鍵入play並使其工作即可。 – 2012-05-10 17:34:00

+0

我最終通過放棄類型安全堆棧來實現它。謝謝! – Russell 2012-05-10 18:22:31

0

爲了將來的參考,我發現自己有一個類似的問題,使用play 2.0.4和eclipse結合使用。

我解決了問題,通過增加

<classpathentry path="<myProjectDirectory>\target\scala-2.9.1\classes_managed" kind="lib"></classpathentry> 

<myProjectDirectory>/.classpath

我不知道怎麼回事,但不知何故,此行得到了刪除...

相關問題