У меня есть следующий код:
val engine = new ScriptEngineManager().getEngineByName("scala").asInstanceOf[ScriptEngine with Invocable with Compilable]
val script = """def incrementN(n: Int)= {
| n+1
|}
|
|incrementN(n.asInstanceOf[Int])"""
engine.getContext.setAttribute("n", 0, ScriptContext.ENGINE_SCOPE)
val compiled = engine.compile(script)
println(compiled.eval())
println(compiled.eval())
Первый сценарий выполняется без проблем, но следующая такая же оценка завершается неудачно:
Исключение в потоке "main" scala.tools.nsc.interpreter.IMain $ ReadEvalPrint $ EvalException: не удалось загрузить '$ line6. $ Eval': $ line6. $ Eval
в scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.evalError (IMain.scala: 745)
на scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.load (IMain.scala: 749)
в scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.evalClass $ lzycompute (IMain.scala: 752)
в scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.evalClass (IMain.scala: 752)
в scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.evalMethod (IMain.scala: 795)
на scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.call (IMain.scala: 730)
в scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.callEither (IMain.scala: 739)
в scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.evalEither (IMain.scala: 754)
на scala.tools.nsc.interpreter.Scripted $ WrappedRequest. $ anonfun $ evalEither $ 3 (Scripted.scala: 208)
at scala.util.DynamicVariable.withValue (DynamicVariable.scala: 58)
в scala.Console $ .withIn (Console.scala: 226)
на scala.tools.nsc.interpreter.Scripted $ WrappedRequest. $ anonfun $ evalEither $ 2 (Scripted.scala: 208)
at scala.util.DynamicVariable.withValue (DynamicVariable.scala: 58)
на scala.Console $ .withErr (Console.scala: 192)
на scala.tools.nsc.interpreter.Scripted $ WrappedRequest. $ anonfun $ evalEither $ 1 (Scripted.scala: 207)
at scala.util.DynamicVariable.withValue (DynamicVariable.scala: 58)
на scala.Console $ .withOut (Console.scala: 163)
в scala.tools.nsc.interpreter.Scripted $ WrappedRequest.evalEither (Scripted.scala: 206)
на scala.tools.nsc.interpreter.Scripted $ WrappedRequest. $ anonfun $ eval $ 1 (Scripted.scala: 247)
на scala.tools.nsc.interpreter.Scripted.withScriptContext (Scripted.scala: 124)
на scala.tools.nsc.interpreter.Scripted $ WrappedRequest.eval (Scripted.scala: 225)
at javax.script.CompiledScript.eval (CompiledScript.java:106)
версия scala - 2.12.7
Java-версия "1.8.0_144"
Не могли бы вы помочь мне разобраться, в чем может быть эта проблема?