Playframework &引用;“找不到对象scala”;正在尝试运行vanilla Play 2应用程序

Playframework &引用;“找不到对象scala”;正在尝试运行vanilla Play 2应用程序,playframework,classpath,sbt,playframework-2.0,Playframework,Classpath,Sbt,Playframework 2.0,我正在拼命尝试在我的Windows上运行一个香草游戏应用程序(但希望不会太久!) 我下载了typesafe stack 2.1,并使用推荐的GitRate模板创建了一个基本的Play应用程序: g8 typesafehub/play scala 然后我运行sbt run并等待服务器启动,导航到localhost:9000并获取java.lang.ExceptionInInitializerError,其根本原因是MissingRequirementError:object scala未找到 听起

我正在拼命尝试在我的Windows上运行一个香草游戏应用程序(但希望不会太久!)

我下载了typesafe stack 2.1,并使用推荐的GitRate模板创建了一个基本的Play应用程序:

g8 typesafehub/play scala

然后我运行
sbt run
并等待服务器启动,导航到
localhost:9000
并获取
java.lang.ExceptionInInitializerError
,其根本原因是
MissingRequirementError:object scala未找到

听起来像是类路径问题(?)-但我不知道从哪里开始,因为1)我不熟悉sbt、scala和play,2)我不擅长诊断和修复类路径问题。所以我想我会在这里问,希望有人能给我指出一个有用的调查方向

以下是stacktrace:

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]
注意:其他人已经提出了完全相同的问题,但由于“不太可能帮助任何未来的访问者”而关闭了该问题。因为我是一个未来的访客,我会发现答案非常有用,所以我觉得自己有理由再问一次


谢谢

在通过Typesafe堆栈安装Play 2.0时,我听说你不是第一个抱怨的人。我还没有时间亲自调查,但我知道通过安装Play 2.0应该可以避免上述问题


我的另一个想法是,您正在发布
sbt
,而不是
play
。诚然,它们几乎是相同的应用程序,但我希望您的
sbt
命令指向
sbt
的一个实例,而
play
很可能指向具有不同类路径的单独可执行文件。

在通过Typesafe堆栈安装play 2.0时,我听说您不是第一个抱怨的人。我还没有时间亲自调查,但我知道通过安装Play 2.0应该可以避免上述问题


我的另一个想法是,您正在发布
sbt
,而不是
play
。诚然,它们几乎是相同的应用程序,但我希望您的
sbt
命令指向
sbt
的实例,而
play
可能指向具有不同类路径的单独可执行文件。

供将来参考,我发现自己在结合使用Play2.0.4和eclipse时遇到了类似的问题

我通过添加

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

/.classpath


我不知道怎么做的,但不知怎么的,这一行被删除了…

为了将来的参考,我发现自己在结合使用Play2.0.4和eclipse时遇到了类似的问题

我通过添加

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

/.classpath


我不知道是怎么回事,但不知怎的,这一行被删除了…

事实上,在我第一次为play2进行的tut中,我没有使用set命令,只使用了LYPLAY命令。此外,我发现GitHub上的文档比play的网站上的文档更有用……问题是typesafe的文档使用sbt显式显示。当我安装typesafe堆栈时,它并没有以这样的方式安装Play,即我可以在命令行中键入Play并使其工作。我最终通过放弃typesafe堆栈使其工作。谢谢事实上,在我为第二集做的第一次图坦卡蒙中,我并没有使用set命令,只使用了LYPLAY命令。此外,我发现GitHub上的文档比play的网站上的文档更有用……问题是typesafe的文档使用sbt显式显示。当我安装typesafe堆栈时,它并没有以这样的方式安装Play,即我可以在命令行中键入Play并使其工作。我最终通过放弃typesafe堆栈使其工作。谢谢我也有同样的问题。请不要关闭这个,因为它不太可能帮助其他人。我也有同样的问题。请不要关闭此按钮,因为它不太可能帮助其他人。