Nous voulons exécuter la méthode EXECUTE (S1, S2) dans javascriptMethods.js. Le contenu du fichier javascriptMethods.js est le suivant:
Fonction Execute (S1, S2) {return S1 + S2;}Tout d'abord, vous devez définir une interface, qui donne la même signature de méthode que la méthode JavaScript à exécuter. Nous définissons les méthodes d'interface et son contenu est le suivant:
/ ** * La signature de la méthode dans l'interface doit être cohérente avec la méthode JavaScript à exécuter * @author yUnCong * * / Méthodes d'interface publique {public String Execute (String S1, String S2);}Ensuite, vous pouvez utiliser le moteur de script pour exécuter la méthode EXECUTE (S1, S2) dans javascriptMethods.js. Le contenu spécifique est écrit dans la classe ExecuteScript suivante:
import java.io.fileReader; import javax.script.invocable; import javax.script.scriptengine; import javax.script.scriptenNineManager; public class executeScript {public static void Main (String [] args) {scriptenginGeager Manager = new ScripneManager (); Scriptengine moteur = manager.getEngineByName ("js"); try {String path = executeScript.class.getResource (""). getPath (); System.out.println (chemin); // Le paramètre de FileReader est le chemin d'accès du fichier JS à exécuter moteur.eval (nouveau fileReader (path + "javascriptMethods.js")); if (instance moteurof invocable) {invocable invocable = (invocable) moteur; Méthodes ExecuteThod = invocable.getInterface (méthodes.class); System.out.println (ExecuteMethod.Execute ("li", "yuncong")); }} catch (exception e) {e.printStackTrace (); }}} Exécutez la classe ExecuteScript et la sortie est la suivante:
/ C: / users / yunconn / git / ligin / cible / classes / executecript / liyung
Ce qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.