Dans le code ci-dessous, javascript est exécuté dans un fil séparé du fil principal. Ce script est une boucle infinie, il faut donc le terminer. Comment? L’appel de .cancel () ne fonctionne pas APRES le début de l’exécution du script. Mais si j’appelle .cancel () juste après l’initialisation du thread, cela le terminera (la ligne […]
Nous sums en train d’append une fonction de script côté serveur à l’un de nos produits. Dans le cadre de cela, j’évalue les moteurs de script JSR 223. Étant donné que nous pouvons potentiellement exécuter un grand nombre de scripts sur le serveur, l’utilisation de la mémoire de ces moteurs de script me préoccupe particulièrement. […]
J’ai fait face au problème suivant. Je voudrais utiliser java.util.HashMap et java.util.PriorityQueue dans le script Nashorn , où je dois utiliser un object personnalisé en tant que clé dans HashMap et utiliser également HashMap.containsKey() pour vérifier s’il existe un clé dans la carte (une autre option consiste à vérifier si l’object dans Collection.contains (Object o)). […]
Je souhaite utiliser la console Nashorn comme alternative à Rails c. Par exemple, j’aimerais appeler des méthodes Java pour importer des données d’un système distant et exécuter des migrations de données. J’ai trouvé cela très intéressant: https://www.baeldung.com/java–nashorn $JAVA_HOME/bin/jjs jjs> print(“test”); test jjs> Comment puis-je par exemple appeler une méthode Java à partir du package WAR […]
Java 9 inclut maintenant le support ECMAScript 6, comme le prétend cet article . Cependant, cela n’explique pas comment l’exécuter depuis Java avec ScriptEngine . Le magazine Java lié ne l’explique pas non plus. L’article dit ce qui suit: Pour activer le support ES6, utilisez –language=es6 sur la ligne de commande. Cela fonctionne avec jjs […]
Est-il sécuritaire pour moi d’écrire un programme Java avec des importations comme celle-ci: import jdk.nashorn.api.scripting.NashornScriptEngineFactory; import jdk.nashorn.api.scripting.ClassFilter; Remarque: Dans mon exemple, j’importe Nashorn, mais il pourrait s’agir de tout autre paquet jdk. Remarque: Je sais qu’il est sûr / correct d’importer depuis java. *, Javax. * Et d’être dangereux / non pris en charge d’importer […]
Impossible d’avoir le moteur Nashorn ScriptEngine engine = new ScriptEngineManager().getEngineByName(“nashorn”); engine.eval(“print(‘Hello World!’);”); engine renvoie null J’utilise eclipse, jdk1.8.0_11 java -version version java “1.8.0_20-ea” Environnement d’exécution Java SE (version 1.8.0_20-ea-b23)
J’utilise Nashorn via JSR 223 pour exécuter de petits extraits du script saisi par l’utilisateur: public Invocable buildInvocable(Ssortingng script) throws ScriptException { ScriptEngine engine = new ScriptEngineManager().getEngineByName(ENGINE); engine.eval(functions); engine.eval(script); return (Invocable) engine; } Les différents scripts utilisateur appellent des fonctions JavaScript définies dans une bibliothèque centrale statique (conservée dans la functions Ssortingng dans l’extrait de […]
Je sais que vous pouvez travailler avec des baies Java à Nashorn et il existe de nombreux exemples sur la façon de procéder. Le problème pour moi avec l’approche standard est qu’il rend le code javascript explicitement conscient de son environnement d’exécution. Actuellement, j’ai une solution qui utilise Rhino et qui convertit de manière transparente […]
Est-il possible de cacher ou de supprimer les api java de nashorn-engine? Pour qu’il puisse uniquement voir ou utiliser “par défaut” ECMAScript 262 Edition 5.1 avec des fonctions / variables particulièrement exposées? Je voudrais laisser mes utilisateurs finaux créer une logique spécifique pour eux-mêmes sans craindre de pouvoir pirater tout le système. Bien sûr, il […]