javascriptmethods.jsで実行(S1、S2)メソッドを実行します。 javascriptmethods.jsファイルのコンテンツは次のとおりです。
関数execute(s1、s2){return s1 + s2;}最初に、実行するJavaScriptメソッドと同じメソッド署名を提供するインターフェイスを定義する必要があります。インターフェイスメソッドを定義しますが、そのコンテンツは次のとおりです。
/** *インターフェイスのメソッド署名は、実行するJavaScriptメソッドと一致する必要があります * @author yuncong * */publicインターフェイスメソッド{public string execute(string s1、string s2);}次に、スクリプトエンジンを使用して、javascriptmethods.jsで実行(S1、S2)メソッドを実行できます。特定のコンテンツは、次のexecutescriptクラスで記述されています。
Import java.io.fileReader; Import javax.script.invocable; Import javax.script.scriptengine; Import javax.script.scriptenginemanager; public static void main(string [] args){scriptenginemanager manager = new ScriptEnginager(); ScriptEngine Engine = Manager.GetEngineByName( "JS"); try {string path = executescript.class.getResource( "")。getPath(); system.out.println(path); // fileReaderのパラメーターは、Engine.eval(new fileReader(path + "javascriptmethods.js"))を実行するJSファイルのパスです。 if(Engine Instanceof infocable){invocable invocable =(invocable)エンジン;メソッドexectemethod = invocable.getInterface(methods.class); system.out.println(executemethod.execute( "li"、 "yuncong")); }} catch(例外e){e.printstacktrace(); }}} executescriptクラスを実行すると、出力は次のとおりです。
/c:/users/yuncong/git/login/target/classes/executescript/liyuncong
上記はこの記事に関するものです。すべての人の学習に役立つことを願っています。