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");
}
}


