Dużo googlowałem i jestem całkowicie zablokowany. Wiem, że są podobne pytania, ale proszę, przeczytaj do końca. Próbowałem wszystkich proponowanych rozwiązań i żaden z nich nie działał.scala.tools.nsc.IMain w Play 2.1
Próbuję użyć klasy IMain
z scala.tools.nsc
w projekcie Play 2.1 (przy użyciu Scala 2.10.0).
kod kontrolera
Jest to kod, gdzie staram się używać IMain
w websocket. To jest tylko do testowania.
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)
}
}
Jak tylko coś zostanie wysłany w ciągu websocket następujący błąd zostanie zarejestrowany przez zaawansowania:
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(
)
}
Co Próbowałem tak daleko
Wszystko to nie działa:
- mam włączone
fork := true
w ASettings
obiektuBuild.scala
- z:
embeddedDefaults[MyType]
usejavacp.value = true
- soultion zaproponowany jako odpowiedź na pytanie Embedded Scala REPL inherits parent classpath
Nie wiem, co teraz zrobić.
próbowałeś coś prostszego jak nowy scala.tools.nsc.interpreter.IMain (()). Interpretacji ("val x = 1") mecz ... – Iraklis
@Iraklis tak.Umieściłem to w kodzie inicjalizacyjnym w Global.scala. Ten sam komunikat o błędzie. –
Możesz także zajrzeć do mojej odpowiedzi [tutaj] (http://stackoverflow.com/a/23925201/3686016) dotyczącej tego problemu. – Aniket