Non devi usare niente delle classi specifiche del Nashorn.
Se si usa Maven basta mettere:
codice:<dependency> <groupId>org.openjdk.nashorn</groupId> <artifactId>nashorn-core</artifactId> <version>15.4</version> </dependency>
O l'equivalente per Gradle. O il jar messo "a mano" nel progetto se non Maven/Gradle.
L'engine presente nel nashorn-core viene già registrato automaticamente tramite il meccanismo del ServiceLoader. Il jar del nashorn-core infatti contiene il file META-INF/services/javax.script.ScriptEngineFactory.
E se lo si usa in una applicazione con il JPMS (il module system), il nashorn-core è un "modulo" che dichiara il provides javax.script.ScriptEngineFactory with <classespecifica>.
Quindi a te basta mettere il jar "in classpath" e poi usare la API di javax.script normalmente come stavi facendo.
P.S. se intendi usare il Nashorn "standalone" (quello inserito esplicitamente come sopra) nei Java 11~14 dove c'è ANCHE il Nashorn built-in del JDK, devi leggere https://github.com/szegedi/nashorn/w...-Java-versions
Spiega cosa è possibile fare per distinguere tra i due Nashorn. E questo è il caso in cui può essere utile usare la factory specifica del Nashorn "standalone" come entry point principale.


Rispondi quotando