代码之家  ›  专栏  ›  技术社区  ›  Ayman

Java脚本引擎导入我的类不起作用

  •  4
  • Ayman  · 技术社区  · 14 年前

    一个代码值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?

    2 回复  |  直到 14 年前
        1
  •  7
  •   Ayman    14 年前

    看了照片之后 Mozilla Rhino docs ,解决方案是使用:

    importPackage(Packages.jasim) 在脚本中,或使用 new Packages.jasim.JSTest()

        2
  •  -4
  •   maid450    14 年前

    与导入方式相同 javax.script.ScriptEngine;