MatchError:
java.lang.NoClassDefFoundError: Could not initialize class play.templates.ScalaTemplateCompiler$TemplateAsFunctionCompiler$PresentationCompiler$ (of class
java.lang.NoClassDefFoundError) No source available, here is the exception stack trace:
scala.MatchError:
java.lang.NoClassDefFoundError: Could not initialize class play.templates.ScalaTemplateCompiler$TemplateAsFunctionCompiler$PresentationCompiler$ (of class
java.lang.NoClassDefFoundError) sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.
scala:346) sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.
scala:346)
scala.Option.map(Option.
scala:133) sbt.PlayReloader$$anon$2$$anonfun$reload$2.apply(PlayReloader.
scala:346) sbt.PlayReloader$$anon$2$$anonfun$reload$2.apply(PlayReloader.
scala:344)
scala.Either$LeftProjection.map(Either.
scala:374) sbt.PlayReloader$$anon$2.reload(PlayReloader.
scala:344) play.core.ReloadableApplication.get(ApplicationProvider.
scala:98) play.core.server.Server$class.sendHandler$1(Server.
scala:56) play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.
scala:88) play.core.server.Server$$anonfun$getHandlerFor$4.apply(Server.
scala:87)
scala.util.Either$RightProjection.flatMap(Either.
scala:523) play.core.server.Server$class.getHandlerFor(Server.
scala:87) play.core.server.NettyServer.getHandlerFor(NettyServer.
scala:34) play.core.server.netty.PlayDefaultUpstreamHandler.messageReceived(PlayDefaultUpstreamHandler.
scala:103) org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.
java:75) org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.
java:565) org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.
java:793) org.jboss.netty.handler.codec.http.HttpContentDecoder.messageReceived(HttpContentDecoder.
java:104) org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.
java:75) org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.
java:565) org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.
java:793) org.jboss.netty.channel.Channels.fireMessageReceived(Channels.
java:296) org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.
java:455) org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.
java:538) org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.
java:437) org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.
java:75) org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.
java:565) org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.
java:560) org.jboss.netty.channel.Channels.fireMessageReceived(Channels.
java:268) org.jboss.netty.channel.Channels.fireMessageReceived(Channels.
java:255) org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.
java:84) org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.
java:472) org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.
java:333) org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.
java:35) org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.
java:102) org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.
java:42)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
java:615)
java.lang.Thread.run(Thread.
java:722)
以下、解決法
問題だったのはplayのディレクトリの場所。私は「C:\Program Files\play-2.1.0」に置いていたのだけど、「Progeam Files」の部分がわるかった。つまり、スペースが入っていること。
なので、「C:\play-2.1.0」に移動してあげると正常に起動した。