java 发送数据给 js 发送数据给 java
test.java
package test; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.List; import javax.script.ScriptEngine; import javax.script.ScriptEngineFactory; import javax.script.ScriptEngineManager; import javax.script.ScriptException; public class Test { private static ScriptEngineManager scriptEngineManager; private static List<ScriptEngineFactory> engineFactories; private static ScriptEngine engineByName; //private static ScriptEngineFactory scriptEngineFactory; public static void main(String[] args) { System.out.println("Hello,world"); scriptEngineManager = new ScriptEngineManager(); //创建一个脚本语言管理者, //engineFactories = scriptEngineManager.getEngineFactories();//并获得所有引擎的工厂 //engineByName = scriptEngineManager.getEngineByName("Nashorn");//获得对应的脚本语言 //engineByName = scriptEngineManager.getEngineByMimeType("application/javascript");//获得对应的脚本语言 engineByName = scriptEngineManager.getEngineByExtension("js");//获得对应的脚本语言 System.out.println(engineByName); try { engineByName.eval("print('Hello,javascript')"); //通过java执行javascript代码 engineByName.eval(new FileReader("./src/test/javascript.js")); } catch (ScriptException |FileNotFoundException e) { //合并异常 !!! e.printStackTrace(); } } }
javascript.js
/** * */ (function (){ print("hello,here is javascript.js"); java.lang.System.out.println("hello,here is java"); var hello = Java.type("test.hello"); var h = new hello(); h.sayHello(); })();
hello.java
package test; public class hello { public void sayHello() { System.out.println("hello , hi , here is hello"); } }