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");
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
02-12 10:05
小米集团 算法工程师 28.0k*15.0
泡沫灬一触即破:楼上那个看来是看人拿高薪,自己又不如意搁这泄愤呢是吧,看你过往评论很难不怀疑你的精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务