2015-11-30 65 views
0

我是全新的,以犀牛和嘗試加載我的第一個js文件如下:Java8,犀牛:未能加載外部。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()方法不返回在所有 - 它只是停留在調試(U唱Eclipse)。

任何想法爲什麼原型沒有定義,爲什麼我無法評估jQuery js文件?

謝謝!

+0

使用unminified版本 - 這將讓你更明智的錯誤位置。你也試圖加載爲瀏覽器環境(也可能是Node)製作的庫。我懷疑你可以簡單地將它們加載到諸如Nashorn或Rhino等香草JS引擎中。 –

回答

1

Nashorn是兼容ECMAScript5的JavaScript引擎。 WebSocket API不是ECMAScript 5的一部分,而是瀏覽器API。那是因爲你得到了異常。

+0

謝謝!不再使用Nashorn ... – Shvalb