题
一个代码值得1000个单词解释:-)
package jasim;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JSTest {
public static void main(String[] args) throws ScriptException {
ScriptEngine jse = new ScriptEngineManager().getEngineByExtension("js");
jse.eval("println(new jasim.JSTest().toString)");
}
@Override
public String toString() {
return "JSTest Object";
}
}
此代码将失败,以下例外:
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "jasim" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
如何将自己的课程导入ScriptEngine?
解决方案
看了看 Mozilla Rhino文档, ,解决方案要么使用:
importPackage(Packages.jasim)
在脚本中或使用 new Packages.jasim.JSTest()
在Sun Docs中,关于ScriptingEngine文档中的ImportPackage并不清楚。
其他提示
与您导入的方式相同 javax.script.ScriptEngine;
...
只需确保您的课程在课堂路径中
不隶属于 StackOverflow