一个代码值得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";
}
}
Run Code Online (Sandbox Code Playgroud)
此代码将失败,但以下情况除外:
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
Run Code Online (Sandbox Code Playgroud)
如何将自己的类导入ScriptEngine?
在查看Mozilla Rhino文档后,解决方案是使用:
importPackage(Packages.jasim) 在脚本内,或使用 new Packages.jasim.JSTest()
关于ScriptingEngine文档中的importPackage的Sun文档中,这一点并不十分清楚.
| 归档时间: |
|
| 查看次数: |
7201 次 |
| 最近记录: |