Java TypeError:在中找不到函数blah
我正在使用javax.script中的JavaScript支持对JS脚本进行一些基本的单元测试,我遇到了一个问题 我有一些代码Java TypeError:在中找不到函数blah,java,javascript,unit-testing,Java,Javascript,Unit Testing,我正在使用javax.script中的JavaScript支持对JS脚本进行一些基本的单元测试,我遇到了一个问题 我有一些代码eval(…)s我在ScriptEngine实例中拥有的必备库文件,包括其中包含我的函数blah的代码 然后,我在ScriptEngine的同一个实例中评估另一个文件,在该实例中,我有一些用作测试的函数,然后调用测试 然而,尽管所有的eval都可以正常工作,但我得到了一个错误,这对我来说意味着加载函数有问题 javax.script.ScriptException:sun
eval(…)
s我在ScriptEngine实例中拥有的必备库文件,包括其中包含我的函数blah的代码
然后,我在ScriptEngine的同一个实例中评估另一个文件,在该实例中,我有一些用作测试的函数,然后调用测试
然而,尽管所有的eval都可以正常工作,但我得到了一个错误,这对我来说意味着加载函数有问题
javax.script.ScriptException:sun.org.mozilla.javascript.internal.EcmaError:TypeError:找不到函数blah。(#x)在第x行
对同一个脚本引擎
进行两个独立的eval
调用对我很有用。您是否正在设置新的脚本上下文
,或以其他方式删除对废话的定义
public class TryScripting {
public static void main(String[] args) throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
String makeFun = "function hello() {\n" +
"return \"hello world\";\n" +
"}\n" +
"{\n" +
"}";
engine.eval(makeFun);
engine.eval("myVar = hello()");
ret = engine.get("myVar");
System.out.println(ret);
}
}