sbt コンソールでは、sbt バージョン 0.13.5、Scala バージョン 2.11.1 で、Scala を取得できますjavax.script.ScriptEngine
。
scala> val engine = new javax.script.ScriptEngineManager().getEngineByName("scala")
engine: javax.script.ScriptEngine = scala.tools.nsc.interpreter.IMain@bf78a9
ただし、使用できません:
scala> engine.eval("3")
[init] error: error while loading Object, Missing dependency 'object scala in compiler mirror', required by /usr/lib/jvm/java-7-openjdk-i386/jre/lib/rt.jar(java/lang/Object.class)
Failed to initialize compiler: object scala 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.
scala.reflect.internal.MissingRequirementError: object scala in compiler mirror not found.
at ...
SBT FAQ によると、 a で何らかの魔法をかけてSettings
から、それを myInterpreter
のコンストラクターに渡すことになっています。ただし、私は を直接作成しているわけではありませんInterpreter
(また、エンジン オブジェクトが であるため、間接的に作成しているかどうかも明確ではありませんIMain
)。
ScalaScriptEngine
を SBT コンソールで動作させる方法はありますか?