web-dev-qa-db-fra.com

Nashorn Alternative pour Java 11

J'utilise Nashorn javascript moteur dans Java 11 qui fonctionne bien, sauf qu'il sera bientôt déprécié. J'ai essayé GraalVM que je trouve tout à fait 13-14 secondes pour exécuter une expression simple (par exemple 2 + 3). Y a-t-il une autre alternative que je pourrais utiliser ou devrais-je essayer GraalVM avec une autre approche (s'il y en a un)?

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("javascript");
engine.eval("2+3");
7
Sohaib Zafar

Vous pouvez utiliser Rhino comme remplacement

Rhino est toujours maintenu en tant que projet open-source et a donc des antécédents d'implication de la communauté. Pour certaines utilisations, il est clairement supérieur à cause de son temps de démarrage plus rapide.

1
user7294900

Si quelqu'un trouve toujours cette question pertinente, une alternative viable, toujours activement maintenue aux moteurs de script de Nashorn/Rhino, est le J2V8 Reliure pour la JVM.

Des artefacts peuvent être trouvés ici (assurez-vous d'utiliser ce lien pour obtenir des versions mises à jour)

Le support multi-plateforme est intégré via JNI

Bien que ses mécaniciens soient un peu différents de ceux de l'API ScriptEngine, la performance est (comme prévu) mieux. Et vous n'avez pas à gérer des effets secondaires étranges tels que des charges de classe imprévus causées par une mauvaise utilisation de l'API.

Je l'ai utilisé avec succès moi-même dans le passé.

2
Sheinbergon