2012-05-23 38 views
3

我使用JVM中的犀牛與jaxax.script接口。我正在嘗試評估包含「需要」調用的JavaScript。這是行不通的,因爲沒有'require'的定義。只需要一個V8的東西?或者只是一個node.js的東西?在JVM上有沒有辦法解決這個問題?我能想到的選項是完整性檢查:Rhino沒有需求功能,對不對?

  • 通過手動包括所需的代碼
  • 召喚出一個單獨的node.js改寫js文件處理

(我並不推薦的方法。 )

回答

5

requireCommonJS規範node.js(和其他框架,如RingoJS)使用。最新版本的Rhino支持require,但是隨JVM一起提供的版本不支持。

要解決這個問題,您可以直接使用Rhino而不是javax.script接口,或者自己實現CommonJS模塊系統。你可以在新的Rhino版本中取代JVM的版本,但我不知道這是否可行。

雖然你可能需要使用類似RingoJS的東西,因爲還有其他的CommonJS規範可能被假定爲在那裏,並且本地不支持Rhino。當然,依賴於node.js特有功能的庫仍然存在問題。

+0

我發現了一個小型的Rhino Require Project https://github.com/micmath/Rhino-Require,它適用於我的小應用程序......但如果這是在更大的範圍內工作....我不知道 – spankmaster79