如何在Java中指定自己的Rhino上下文?

如何在Java中指定自己的Rhino上下文?,java,javascript,rhino,javax.script,Java,Javascript,Rhino,Javax.script,我正试图确保我的Rhino脚本(在Java6下运行)是严格的,这样,如果脚本开发人员拼错了一个表达式,我希望抛出一个异常。目前,表达式的计算结果只是“未定义” 现在根据Mozilla org的说法,有一些功能可以在上下文中实现严格的检查。我找不到一个有效的例子 到目前为止,我所做的是编写一个类来扩展ContextFactory,然后重写hasFeature方法 public class ScriptContextFactory extends ContextFactory { prot

我正试图确保我的Rhino脚本(在Java6下运行)是严格的,这样,如果脚本开发人员拼错了一个表达式,我希望抛出一个异常。目前,表达式的计算结果只是“未定义”

现在根据Mozilla org的说法,有一些功能可以在上下文中实现严格的检查。我找不到一个有效的例子

到目前为止,我所做的是编写一个类来扩展ContextFactory,然后重写hasFeature方法

public class ScriptContextFactory extends ContextFactory {

    protected boolean hasFeature(Context context, int featureIndex) {

        switch (featureIndex) {
            case Context.FEATURE_STRICT_EVAL:
                return true;

            case Context.FEATURE_STRICT_VARS:
                return true;
        }

        return super.hasFeature(context, featureIndex);
    }
  }
然后我将我的设置为默认值

ContextFactory.initGlobal(new ScriptContextFactory());
我得到了一个非法的州例外:(

关于这是如何工作的,有什么想法或样本吗


TIA

如果您正在执行
上下文。请在调用
initGlobal()
之前输入()