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");
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.
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é.