日期:2014-05-17  浏览次数:20633 次

关于在java中调用js的问题
jdk1.6自带调用js的类ScriptEngineManager、ScriptEngine

在实际使用中,执行如下代码的时候报错。


        ScriptEngineManager manager = new ScriptEngineManager();   
        ScriptEngine engine = manager.getEngineByName("javascript");     
        String jsFileName = "test.js";   // 读取js文件   
 
        FileReader reader = new FileReader(jsFileName);   // 执行指定脚本   
     
            engine.eval(reader);


执行到engine.eval(reader); 的时候报错:


javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "g" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1
    at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:110)
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:232)



到网上大概查了下,发现说是这个js需要配合active控件才能正常读取。
这个js是从别的地方拉过来的。
求大神&大婶们帮忙 
Java JavaScript

------解决方案--------------------
jdk是1.6.?升级到1.6.38看看