我是Nashorn的新手并尝试加载我的第一个js文件,如下所示:
public static void main(String[] args) {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("nashorn");
try {
engine.eval("load('https://cdn.jsdelivr.net/sockjs/1.0.3/sockjs.min.js')");
}catch(final ScriptException e) {
System.err.println(e);
}
}
我得到以下例外:
javax.script.ScriptException: TypeError: Cannot read property "prototype" from undefined in http://cdn.jsdelivr.net/sockjs/1.0.3/sockjs.min.js at line number 3
此外,当我尝试评估以下内容时:
engine.eval("load('https://code.jquery.com/jquery-1.11.3.min.js')");
eval()方法根本没有返回 - 它只是停留在调试上(使用Eclipse)。
知道为什么原型没有定义,为什么我不能评估jquery js文件?
谢谢!
答案 0 :(得分:1)
Nashorn是兼容ECMAScript5的JavaScript引擎。 WebSocket API不是ECMAScript 5的一部分,而是浏览器API。那是因为你得到了例外。