Scala.js无法在分叉的JVM中运行

时间:2016-03-13 13:31:49

标签: scala playframework jvm scala.js

我正在尝试使用Scala.js创建SPA,因此我按照此处的教程进行操作:http://www.scala-js.org/tutorial/basic/

我已将addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.7")添加到plugins.sbt,将enablePlugins(ScalaJSPlugin)添加到build.sbt

但是,我收到此错误:

Error:Error while importing SBT project:<br/>...<br/><pre>[info]    [SUCCESSFUL ] args4j#args4j;2.0.16!args4j.jar (92ms)
[info] downloading https://repo1.maven.org/maven2/org/webjars/envjs/1.2/envjs-1.2.jar ...
[info]  [SUCCESSFUL ] org.webjars#envjs;1.2!envjs.jar (179ms)
[info] Done updating.
java.lang.RuntimeException: Scala.js cannot be run in a forked JVM
    at scala.sys.package$.error(package.scala:27)
    at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$43.apply(ScalaJSPluginInternal.scala:551)
    at org.scalajs.sbtplugin.ScalaJSPluginInternal$$anonfun$43.apply(ScalaJSPluginInternal.scala:549)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.EvaluateSettings$MixedNode.evaluate0(INode.scala:175)
    at sbt.EvaluateSettings$INode.evaluate(INode.scala:135)
    at sbt.EvaluateSettings$$anonfun$sbt$EvaluateSettings$$submitEvaluate$1.apply$mcV$sp(INode.scala:69)
    at sbt.EvaluateSettings.sbt$EvaluateSettings$$run0(INode.scala:78)
    at sbt.EvaluateSettings$$anon$3.run(INode.scala:74)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[error] Scala.js cannot be run in a forked JVM
[error] Use 'last' for the full log.

为什么Scala.js不能与JVM一起使用?

2 个答案:

答案 0 :(得分:4)

这似乎是一个已知的issue

你应该:

  

那是因为你混合了JVM的东西(Play)和JS的东西   sbt项目。你不能这样做。你需要单独的sbt项目(in   相同的构建)。看到   https://github.com/vmunier/play-with-scalajs-example了解如何使用   Scala.js与Play!。

这是example

答案 1 :(得分:0)

这通常是由于与scalajs在同一项目中包含jvm库的其他sbt插件冲突而发生的。如果没有看到build.sbt和plugins.sbt的其余内容,就无法确切地说出造成冲突的原因。

假设您正在尝试将其与play集成,这是一个示例项目,可以帮助您入门:

https://github.com/vmunier/play-with-scalajs-example