我试图在Java应用程序中使用Javascript库multilang-extract-comments,因此我决定使用Rhino作为Javascript引擎和Rhinodo来连接Rhino和NodeJS。但是,我无法弄清楚如何实际使用Rhinodo。我已经看过使用Rhinodo的项目的代码(早午餐,jshint和休息室的maven插件),但我觉得代码非常神秘。我试着像执行以下代码(有一些编辑我的应用程序):使用来自Java的使用Rhino和Rhinodo的NodeJS库
rhinodoBuilder
.destDir(rhinodoDestDir)
.moduleFactory(nodeModuleProvider)
.consoleFactory(wrappingConsoleFactory)
.env(env)
.build(new BaseFunction() {
@Override
public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) {
Scriptable brunch = (Scriptable) ScriptableObject.callMethod(cx, scope, "require",
new Object[]{Context.javaToJS("brunch", scope)});
Scriptable options = cx.newObject(scope);
ScriptableObject.putProperty(options, "minify", minify);
System.setProperty("user.dir", userDir.getAbsolutePath());
ScriptRuntime.doTopCall(ScriptableObject.getTypedProperty(brunch, "build", Function.class),
cx, scope, thisObj, new Object[]{
options,
new BaseFunction() {
@Override
public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) {
return Undefined.instance;
}
}
});
return Undefined.instance;
}
});
(从早午餐Maven插件)
然而,这个代码不为我工作。我在尝试查找我的Javascript库时遇到错误,或者当我使用库时应该能够找到(我使用fs作为示例),我得到一个NullPointerException。有人能告诉我我在这里错过了什么吗?
注:既Rhinodo和使用它的Maven插件可以在MuleSoft's GitHub Repositories