一个代码值得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;...

只需确保您的课程在课堂路径中

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top