私はモジュールされていない既存のSpring Bootアプリケーションを持っていて、Nashornを使用しています。アプリケーションはJava 14でうまく機能します。
Java 15に利用可能な新しいNashornのMaven座標を追加した後、スクリプトエンジンの起動中にアプリケーションは失敗します。
_public static void main(String[] args) throws ScriptException {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("nashorn");
engine.eval("print('Hello, World!');");
}
_
エラーメッセージ:
_Exception in thread "main" Java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.eval(String)" because "engine" is null
at xxxxx.yyyy.service.JavaScriptServiceImpl.main(JavaScriptServiceImpl.Java:52)
_
Nashornを利用するためにプロジェクト全体をモジュール化する必要がありますか?
私は解放されました Nashorn 15.1 は、ModulePathを通して代わりにクラスパスを読み込んだときにNashornが機能することを可能にします。私は自分の小さな春の起動申請でそれをテストし、それは機能します。