Articles of nashorn

Interrompre le fil Java en cours d’exécution du script nashorn

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 […]

Combien de mémoire un Nashorn ScriptEngine utilise-t-il?

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. […]

Nashorn, collections Java, comment implémenter equals et hashCode en javascript pur

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)). […]

Comment utiliser le moteur Nashorn pour appeler des objects Java

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 […]

Puis-je exécuter le moteur ECMAScript 6 à partir de Java 9 Nashorn

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 […]

Java: Est-il prudent d’importer à partir de jdk. *?

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 […]

getEngineByName («nashorn») renvoie la valeur null

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)

Scripting Java avec Nashorn (JSR 223) & pré-compilation

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 […]

Passez sans problème les tableaux et les listes depuis et vers Nashorn

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 […]

Comment supprimer java apis de Nashorn-engine?

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 […]