Scala スクリプト エンジンをスタンドアロンで使用できないというバグがあります。詳細とパッチについては、https://issues.apache.org/jira/browse/SLING-1877を参照してください。
また、パッチを適用しても、スクリプト エンジンを使用する場合はクラス パスを設定する必要があることに注意してください。これは、デフォルトの Java クラス パス (つまり、java.class.path) が自動的に使用されていた 2.7.7 からの変更です。2.8 では、'-usejavacp' 引数を使用してこれを明示的に設定する必要があります。
以下は、Scala スクリプト エンジンをスタンドアロンで使用する方法を示すサンプル コードです。
def testScalaScriptEngine() {
val scriptEngineFactory = new ScalaScriptEngineFactory
val settings = new ScalaSettings()
settings.parse("-usejavacp")
scriptEngineFactory.getSettingsProvider.setScalaSettings(settings)
val scriptEngine = scriptEngineFactory.getScriptEngine
val script = """
package script {
class Demo(args: DemoArgs) {
println("Hello")
}
}
"""
scriptEngine.getContext.setAttribute("scala.script.class", "script.Demo", ScriptContext.ENGINE_SCOPE)
scriptEngine.eval(script)
}