我試圖在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