web-dev-qa-db-ja.com

Java 15以降でNashornの使用方法?

私はモジュールされていない既存の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を利用するためにプロジェクト全体をモジュール化する必要がありますか?

11
Aswath Murugan

私は解放されました Nashorn 15.1 は、ModulePathを通して代わりにクラスパスを読み込んだときにNashornが機能することを可能にします。私は自分の小さな春の起動申請でそれをテストし、それは機能します。

3
Attila Szegedi