1 2 | |
ScriptEngineManagerの引数には目的のScriptEngineをロード可能なClassLoaderを指定する必要があるんですが、
引数省略時にはThread.currentThread.contextClassLoaderが使用されるようになっており、sbt runで起動した場合に謎のクラスローダーが使われることになってJDKのextensionであるNashornのエンジンがロード不能。なので明示的にnullを渡す必要があります。
これ、sbt consoleだと引数省略でもうまくいったりするので闇が深い。sbtのクラスローダには気をつけましょう。
ref: http://stackoverflow.com/questions/23567500/how-to-use-scriptengine-in-scalatest