Java - Moteur JavaScript Nashorn
Bonjour à tous, aspirants programmeurs ! Je suis ravi de vous guider dans ce fascinant voyage dans le monde de Java et du Moteur JavaScript Nashorn. Ayant enseigné l'informatique pendant plus d'une décennie, je peux vous assurer que cela va être une expérience pleine de fun et d'éclairage. Alors, plongeons-y !
Qu'est-ce que le Moteur JavaScript Nashorn ?
Nashorn (prononcé "nass-horn") est un moteur JavaScript léger et haute performance qui a été introduit avec Java 8. Il s'agit d'un pont entre Java et JavaScript, permettant d'exécuter du code JavaScript au sein d'une application Java. C'est cool, non ?
Un Petit Historique
Dans mes premiers jours d'enseignement, nous devions utiliser des environnements séparés pour Java et JavaScript. C'était comme essayer de faire un sandwich au beurre d'arachide et à la gelée avec deux assiettes séparées ! Nashorn a changé tout cela, en reliant ces deux langues puissantes en une délicieuse combinaison.
Exécuter JavaScript via les Outils en Ligne de Commande
Commençons par quelque chose de simple. Nashorn est fourni avec un outil en ligne de commande appelé jjs
qui permet d'exécuter du JavaScript directement depuis votre terminal.
Exemple 1 : Hello, Nashorn !
Ouvrez votre invite de commande et tapez :
jjs
print("Hello, Nashorn !");
Vous devriez voir "Hello, Nashorn !" affiché à l'écran. Félicitations ! Vous avez juste exécuté votre premier code JavaScript utilisant Nashorn.
Exécuter JavaScript Directement dans l'Invite de Commande
Vous pouvez également exécuter des fichiers JavaScript directement depuis la ligne de commande.
Exemple 2 : Exécuter un Fichier JavaScript
- Créez un fichier nommé
greet.js
avec le contenu suivant :
var name = "Alice";
print("Hello, " + name + " !");
- Exécutez-le en utilisant jjs :
jjs greet.js
Vous devriez voir "Hello, Alice !" affiché à l'écran.
Passer des Arguments à jjs
Nashorn permet de passer des arguments à votre code JavaScript, tout comme avec Java.
Exemple 3 : Passer des Arguments
Créez un fichier nommé greet_with_args.js
:
var name = $ARG[0];
print("Hello, " + name + " !");
Exécutez-le avec un argument :
jjs greet_with_args.js -- Bob
Vous devriez voir "Hello, Bob !" affiché.
Appeler JavaScript depuis Java
Maintenant, passons à la partie vraiment excitante - appeler JavaScript depuis votre code Java !
Exemple 4 : Évaluer JavaScript dans Java
import javax.script.*;
public class JavaScriptInJava {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
engine.eval("print('Hello from JavaScript !');");
}
}
Lorsque vous exécutez ce programme Java, il affichera "Hello from JavaScript !" en utilisant le moteur Nashorn.
Appeler Java depuis JavaScript
La véritable puissance de Nashorn vient de sa capacité à utiliser des classes et des méthodes Java dans du code JavaScript.
Exemple 5 : Utiliser des Classes Java dans JavaScript
import javax.script.*;
public class JavaInJavaScript {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
engine.eval("var ArrayList = Java.type('java.util.ArrayList');" +
"var list = new ArrayList();" +
"list.add('Hello');" +
"list.add('World');" +
"print(list);");
}
}
Ce code crée une ArrayList Java, ajoute des éléments à celle-ci et l'affiche - tout cela depuis JavaScript !
Fonctionnalités Avancées
Nashorn offre de nombreuses fonctionnalités avancées qui le rendent un outil puissant pour les développeurs Java.
Exemple 6 : Utiliser les Expressions Lambda de Java 8
import javax.script.*;
public class LambdaInNashorn {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
engine.eval("var list = [1, 2, 3, 4, 5];" +
"list.forEach(function(num) { print(num * 2); });");
}
}
Cet exemple montre comment vous pouvez utiliser des expressions lambda de Java 8 dans du code JavaScript s'exécutant sur Nashorn.
Table des Méthodes
Voici une table des quelques méthodes importantes que vous pouvez utiliser avec Nashorn :
Méthode | Description |
---|---|
ScriptEngineManager.getEngineByName("nashorn") |
Obtenir le moteur de script Nashorn |
ScriptEngine.eval(String script) |
Évaluer un script JavaScript |
ScriptEngine.put(String key, Object value) |
Définir une variable dans le moteur de script |
ScriptEngine.get(String key) |
Obtenir une variable du moteur de script |
Invocable.invokeFunction(String name, Object... args) |
Invoker une fonction JavaScript |
Conclusion
Et voilà, mes amis ! Nous avons apenas effleuré ce que Nashorn peut faire, mais j'espère que cette introduction a allumé votre curiosité. N'oubliez pas, la clé pour maîtriser la programmation est la pratique, donc n'hésitez pas à expérimenter avec ces exemples et à créer les vôtres.
Comme je le dis toujours à mes étudiants, programmer est comme apprendre à骑 un vélo - cela peut sembler effrayant au début, mais avec de la pratique, vous serez en vadrouille en un rien de temps. Et qui sait ? Peut-être qu'un jour vous enseignerez à d'autres les merveilles de Nashorn !
Continuez à coder, à apprendre, et surtout, amusez-vous ! Jusqu'à la prochaine fois, c'est votre enseignant de informatique de quartier qui s'efface. Bon codage !
Credits: Image by storyset