Мы хотим выполнить метод Execute (S1, S2) в javascriptmethods.js. Содержание файла javascriptmethods.js заключается в следующем:
Функция execute (s1, s2) {return s1 + s2;}Во -первых, вам необходимо определить интерфейс, который дает ту же подпись метода, что и метод JavaScript, который будет выполнен. Мы определяем методы интерфейса, и его содержание следующим образом:
/** * Подпись метода в интерфейсе должна соответствовать методу JavaScript, который должен быть выполнен * @author yuncong * */public interface methods {public String execute (String S1, String S2);}Затем вы можете использовать механизм скрипта для выполнения метода выполнения (S1, S2) в javascriptmethods.js. Конкретный контент записан в следующем классе executeScript:
Импорт java.io.filereader; import javax.script.invocable; import javax.script.scriptengine; import javax.script.scriptenginemanager; public class exectuctript {public static void main (string [] args) {scriptenganager Manager = new ScripteneManager (); Scriptengine Engine = Manager.getEngineByName ("JS"); try {string path = execurectcript.class.getresource (""). getPath (); System.out.println (path); // Параметр FileReader - это путь файла JS для выполнения Engine.Eval (новый FileReader (Path + "javascriptmethods.js")); if (Engine InstanceOf infocatable) {infocatable infocatable = (infocatable) двигатель; Методы executeMethod = infocable.getInterface (methods.class); System.out.println (executemethod.execute ("li", "yuncong")); }} catch (Exception e) {e.printstackTrace (); }}} Запустите класс executcript, а вывод выглядит следующим образом:
/C:/users/yuncong/git/login/target/classest/executcript/liyuncong
Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.