我正在尝试在java程序中导入env.js
import org.mozilla.javascript.Context;
import org.mozilla.javascript.ContextFactory;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.tools.shell.Main;
public class ScriptRun {
public static void main(String[] args) throws Exception {
System.out.println(System.getProperty("java.version"));
Context cx = ContextFactory.getGlobal().enterContext();
Scriptable scope = cx.initStandardObjects();
cx.setOptimizationLevel(-1);
cx.setLanguageVersion(Context.VERSION_1_7);
Main.processSource(cx, "C:\\Java\\rhino1_7R4\\rhino1_7R4\\env.rhino.1.0.js");\\ <== this generates exception
Context.exit();
}
}
这是生成
Exception in thread "main" org.mozilla.javascript.EvaluatorException: Constructor for "ReferenceError" not found. (C:\Java\rhino1_7R4\rhino1_7R4\env.rhino.1.0.js#75)
at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.java:77)
at org.mozilla.javascript.Context.reportRuntimeError(Context.java:913)
at org.mozilla.javascript.Context.reportRuntimeError(Context.java:969)
try { dontCare = globalize; }
它所在的代码块是
var countOfMissing = 0, dontCare;
try { dontCare = globalize; }
catch (ex){ globalize = function(){ return {}; };
countOfMissing++; }
我认为这段javascript很好。失败的是尝试创建ReferenceError
并在那里失败。我的假设是这应该是javascript引擎的一部分。
有没有人碰到过这个?
jdk是1.7.0_45