私はたくさんのグーグルで行きました。似たような質問がありますが、最後までお読みください。私はすべての提案された解決策を試してみましたが、うまくいきませscala.tools.nsc.IMain in Play 2.1
のIMain
クラスをPlay 2.1プロジェクト(Scala 2.10.0を使用)内で使用しようとしています。
コントローラコード
これは私がのWebSocketでIMain
を使用しようとするコードです。これはテスト用です。
object Scala extends Controller {
def session = WebSocket.using[String] { request =>
val interpreter = new IMain()
val (out,channel) = Concurrent.broadcast[String]
val in = Iteratee.foreach[String]{ code =>
interpreter.interpret(code) match {
case Results.Error => channel.push("error")
case Results.Incomplete => channel.push("incomplete")
case Results.Success => channel.push("success")
}
}
(in,out)
}
}
はできるだけ早く何かがWebSocketを介して送信されるよう、次のエラーがプレイによって記録されます:
Failed to initialize compiler: object scala.runtime in compiler mirror not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programatically, settings.usejavacp.value = true.
Build.scala私がこれまで試してみました何
object ApplicationBuild extends Build {
val appName = "escalator"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
"org.scala-lang" % "scala-compiler" % "2.10.0"
)
val main = play.Project(appName, appVersion, appDependencies).settings(
)
}
このすべてがうまくいきませんでした:
- 私はと
Build.scala
Settings
オブジェクトでfork := true
含まれています:embeddedDefaults[MyType]
usejavacp.value = true
- soultionを答えとして提案します〜へ質問Embedded Scala REPL inherits parent classpath
私は今何をすべきか分かりません。
は、あなたが(新しいscala.tools.nsc.interpreter.IMain())。解釈( "valをX = 1")マッチのような単純なものを試してみました... – Iraklis
@Iraklisはい。私はそれをGlobal.scalaの初期化コードに入れました。同じエラーメッセージ。 –
この問題に関して私の答え[ここ](http://stackoverflow.com/a/23925201/3686016)を見ることもできます。 – Aniket