2012-04-19 53 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

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

相关问题