A modular Js engine based on J2V8,基于J2V8实现的模块化Js引擎
模块化功能由略加修改的sea.js实现,语法类似于CommonJs
注意:在使用该库前,你需要将J2V8库一并加入到项目依赖中
dependencies{ implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.eclipsesource.j2v8:j2v8:6.2.0' }
J2V8ModuleJs moduleJs = new J2V8ModuleJs("/../../main.js"); try { moduleJs.init(true);//初始化并开启print函数,以便调试 moduleJs.execute();//执行 }catch (FileNotFoundException e){ e.printStackTrace(); } moduleJs.release();//释放资源
var person = require("person.js"); person.sayHello();
exports.sayHello = function(){ print("hello"); }
moduleJs.getV8Runtime();//获取V8 moduleJs.defineModule(String moduleName,String script);//定义一个内部模块 moduleJs.hasModule(String moduleName);//获取模块是否存在 moduleJs.setRequireListener(new RequireListener() { @Override public boolean require(String filePath) { return true; } });//监听js中require的模块,返回false则拦截require