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